smzdmJsonp([28], [function(e, t) {
	var i = e.exports = {
		version: "2.5.6"
	};
	"number" == typeof __e && (__e = i)
}, , function(e, t) {
	var i = e.exports = "undefined" != typeof window && window.Math == Math ? window : "undefined" != typeof self && self.Math == Math ? self : Function("return this")();
	"number" == typeof __g && (__g = i)
}, function(e, t, i) {
	e.exports = !i(11)(function() {
		return 7 != Object.defineProperty({}, "a", {
			get: function() {
				return 7
			}
		}).a
	})
}, function(e, t) {
	var i = {}.hasOwnProperty;
	e.exports = function(e, t) {
		return i.call(e, t)
	}
}, function(e, t, i) {
	var n = i(72),
		s = i(19);
	e.exports = function(e) {
		return n(s(e))
	}
}, function(e, t, i) {
	var n = i(12),
		s = i(35),
		a = i(18),
		r = Object.defineProperty;
	t.f = i(3) ? Object.defineProperty : function(e, t, i) {
		if (n(e), t = a(t, !0), n(i), s) try {
			return r(e, t, i)
		} catch (e) {}
		if ("get" in i || "set" in i) throw TypeError("Accessors not supported!");
		return "value" in i && (e[t] = i.value), e
	}
}, function(e, t, i) {
	var n = i(24)("wks"),
		s = i(15),
		a = i(2).Symbol,
		r = "function" == typeof a;
	(e.exports = function(e) {
		return n[e] || (n[e] = r && a[e] || (r ? a : s)("Symbol." + e))
	}).store = n
}, function(e, t, i) {
	var n = i(6),
		s = i(13);
	e.exports = i(3) ?
	function(e, t, i) {
		return n.f(e, t, s(1, i))
	} : function(e, t, i) {
		return e[t] = i, e
	}
}, function(e, t, i) {
	var n = i(2),
		s = i(0),
		a = i(60),
		r = i(8),
		o = i(4),
		l = function(e, t, i) {
			var c, d, u, h = e & l.F,
				p = e & l.G,
				f = e & l.S,
				m = e & l.P,
				v = e & l.B,
				g = e & l.W,
				b = p ? s : s[t] || (s[t] = {}),
				y = b.prototype,
				w = p ? n : f ? n[t] : (n[t] || {}).prototype;
			p && (i = t);
			for (c in i)(d = !h && w && void 0 !== w[c]) && o(b, c) || (u = d ? w[c] : i[c], b[c] = p && "function" != typeof w[c] ? i[c] : v && d ? a(u, n) : g && w[c] == u ?
			function(e) {
				var t = function(t, i, n) {
						if (this instanceof e) {
							switch (arguments.length) {
							case 0:
								return new e;
							case 1:
								return new e(t);
							case 2:
								return new e(t, i)
							}
							return new e(t, i, n)
						}
						return e.apply(this, arguments)
					};
				return t.prototype = e.prototype, t
			}(u) : m && "function" == typeof u ? a(Function.call, u) : u, m && ((b.virtual || (b.virtual = {}))[c] = u, e & l.R && y && !y[c] && r(y, c, u)))
		};
	l.F = 1, l.G = 2, l.S = 4, l.P = 8, l.B = 16, l.W = 32, l.U = 64, l.R = 128, e.exports = l
}, function(e, t) {
	e.exports = function(e) {
		return "object" == typeof e ? null !== e : "function" == typeof e
	}
}, function(e, t) {
	e.exports = function(e) {
		try {
			return !!e()
		} catch (e) {
			return !0
		}
	}
}, function(e, t, i) {
	var n = i(10);
	e.exports = function(e) {
		if (!n(e)) throw TypeError(e + " is not an object!");
		return e
	}
}, function(e, t) {
	e.exports = function(e, t) {
		return {
			enumerable: !(1 & e),
			configurable: !(2 & e),
			writable: !(4 & e),
			value: t
		}
	}
}, function(e, t) {
	e.exports = !0
}, function(e, t) {
	var i = 0,
		n = Math.random();
	e.exports = function(e) {
		return "Symbol(".concat(void 0 === e ? "" : e, ")_", (++i + n).toString(36))
	}
}, function(e, t, i) {
	var n = i(40),
		s = i(20);
	e.exports = Object.keys ||
	function(e) {
		return n(e, s)
	}
}, function(e, t) {
	e.exports = {}
}, function(e, t, i) {
	var n = i(10);
	e.exports = function(e, t) {
		if (!n(e)) return e;
		var i, s;
		if (t && "function" == typeof(i = e.toString) && !n(s = i.call(e))) return s;
		if ("function" == typeof(i = e.valueOf) && !n(s = i.call(e))) return s;
		if (!t && "function" == typeof(i = e.toString) && !n(s = i.call(e))) return s;
		throw TypeError("Can't convert object to primitive value")
	}
}, function(e, t) {
	e.exports = function(e) {
		if (void 0 == e) throw TypeError("Can't call method on  " + e);
		return e
	}
}, function(e, t) {
	e.exports = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")
}, function(e, t) {
	t.f = {}.propertyIsEnumerable
}, function(e, t, i) {
	var n = i(6).f,
		s = i(4),
		a = i(7)("toStringTag");
	e.exports = function(e, t, i) {
		e && !s(e = i ? e : e.prototype, a) && n(e, a, {
			configurable: !0,
			value: t
		})
	}
}, function(e, t, i) {
	var n = i(24)("keys"),
		s = i(15);
	e.exports = function(e) {
		return n[e] || (n[e] = s(e))
	}
}, function(e, t, i) {
	var n = i(0),
		s = i(2),
		a = s["__core-js_shared__"] || (s["__core-js_shared__"] = {});
	(e.exports = function(e, t) {
		return a[e] || (a[e] = void 0 !== t ? t : {})
	})("versions", []).push({
		version: n.version,
		mode: i(14) ? "pure" : "global",
		copyright: "© 2018 Denis Pushkarev (zloirock.ru)"
	})
}, function(e, t) {
	var i = Math.ceil,
		n = Math.floor;
	e.exports = function(e) {
		return isNaN(e = +e) ? 0 : (e > 0 ? n : i)(e)
	}
}, function(e, t, i) {
	var n = i(2),
		s = i(0),
		a = i(14),
		r = i(27),
		o = i(6).f;
	e.exports = function(e) {
		var t = s.Symbol || (s.Symbol = a ? {} : n.Symbol || {});
		"_" == e.charAt(0) || e in t || o(t, e, {
			value: r.f(e)
		})
	}
}, function(e, t, i) {
	t.f = i(7)
}, function(e, t, i) {
	var n = i(12),
		s = i(43),
		a = i(20),
		r = i(23)("IE_PROTO"),
		o = function() {},
		l = function() {
			var e, t = i(34)("iframe"),
				n = a.length;
			for (t.style.display = "none", i(71).appendChild(t), t.src = "javascript:", e = t.contentWindow.document, e.open(), e.write("<script>document.F=Object<\/script>"), e.close(), l = e.F; n--;) delete l.prototype[a[n]];
			return l()
		};
	e.exports = Object.create ||
	function(e, t) {
		var i;
		return null !== e ? (o.prototype = n(e), i = new o, o.prototype = null, i[r] = e) : i = l(), void 0 === t ? i : s(i, t)
	}
}, function(e, t, i) {
	e.exports = {
	default:
		i(53), __esModule: !0
	}
}, function(e, t, i) {
	"use strict";
	(function(t) {
		var n = i(29),
			s = function(e) {
				return e && e.__esModule ? e : {
				default:
					e
				}
			}(n);
		e.exports = {
			setCookie: function(e, t, i, n, s, a) {
				i = i || 604800, i *= 1e3;
				var r = new Date;
				r.setTime(r.getTime() + i), document.cookie = encodeURIComponent(e) + "=" + encodeURIComponent(t) + (r ? "; expires=" + r.toGMTString() : "") + (n ? "; path=" + n : "/") + (s ? "; domain=" + s : "") + (a ? "; secure" : "")
			},
			getCookie: function(e) {
				var t = document.cookie.indexOf(e),
					i = document.cookie.indexOf(";", t);
				return -1 === t ? "" : decodeURIComponent(document.cookie.substring(t + e.length + 1, i > t ? i : document.cookie.length))
			},
			deleteCookie: function(e, t) {
				var i = this,
					n = i.getCookie(e),
					s = t || {};
				s.seconds = -1 * (new Date).getTime() / 1e3, i.setCookie(e, n, s)
			},
			user_login_in: function() {
				// t.ajax({
				// 	type: "get",
				// 	async: "true",
				// 	url: "https://zhiyou.m.ztm.me/user/info/jsonp_get_current",
				// 	dataType: "jsonp",
				// 	jsonp: "callback",
				// 	success: function(e) {
				// 		var i = e.data.user;
				// 		0 === e.error_code && (t(".addComments").length && (t(".zhiyou-login").removeClass("zhiyou-login"), t(".comment-login").hide()), t(".login-icon img").attr("src", i.avatar), t(".J_login_trigger").html(i.nickname), t(".loginIn a").css("color", "#777"), t(".nav-logins").css("display", "flex"))
				// 	},
				// 	error: function(e) {}
				// })
			},
			favPop: function(e, i) {
				var n = t("#cover"),
					s = t(".pop"),
					a = void 0;
				s.find(".pop-info-show a").attr("href", e).end().find(".fav-text").html(i), n.show(), s.show(), a = setTimeout(function() {
					n.hide(), s.hide()
				}, 3e3), s.find(".J_pop_close").click(function() {
					clearTimeout(a), n.hide(), s.hide()
				})
			},
			popPrompt: function(e) {
				t(".prompt-pop").children(".prompt-text").html(e), t(".prompt-pop").stop(!0, !1).fadeIn().animate({
					bottom: "20px"
				}, "slow"), setTimeout(function() {
					t(".prompt-pop").animate({
						bottom: "-40px"
					}, "slow").fadeOut()
				}, 2e3)
			},
			inArray: function(e, t, i) {
				var n = i || 0;
				if (Array.prototype.indexOf) return t.indexOf(e, n);
				for (var s = n, a = t.length; s < a; s++) if (e === t[s]) return s;
				return -1
			},
			setCookieInObj: function(e, t, i, n) {
				var a = {},
					r = this,
					o = r.getCookie(e);
				"" !== o ? (a = JSON.parse(o), a[t] = i, r.setCookie(e, (0, s.
			default)(a), n)) : (a[t] = i, r.setCookie(e, (0, s.
			default)(a), n))
			},
			deleteCookieInArr: function(e, t, i) {
				var n = this,
					s = n.getCookie(e);
				if ("" !== s) {
					var a = s.split(","); - 1 !== this.inArray("" + t, a) && (a.splice(this.inArray("" + t, a), 1), n.setCookie(e, a.join(","), i))
				}
			},
			setCookieInArr: function(e, t, i) {
				var n = this,
					s = n.getCookie(e);
				if ("" !== s) {
					var a = s.split(","); - 1 === this.inArray("" + t, a) && (a.push(t), n.setCookie(e, a.join(","), i))
				} else n.setCookie(e, t, i)
			},
			strlen: function(e) {
				for (var t = 0, i = 0; i < e.length; i++) {
					var n = e.charCodeAt(i);
					n >= 1 && n <= 126 || n >= 65376 && n <= 65439 ? t++ : t += 2
				}
				return t
			},
			GetRequest: function() {
				var e = window.location.search,
					t = {};
				if (-1 !== e.indexOf("?")) for (var i = e.substr(1), n = i.split("&"), s = 0; s < n.length; s++) t[n[s].split("=")[0]] = unescape(n[s].split("=")[1]);
				return t
			}
		}
	}).call(t, i(1))
}, function(e, t, i) {
	"use strict";

	function n(e) {
		return e && e.__esModule ? e : {
		default:
			e
		}
	}
	t.__esModule = !0;
	var s = i(65),
		a = n(s),
		r = i(64),
		o = n(r),
		l = "function" == typeof o.
	default &&"symbol" == typeof a.
	default ?
	function(e) {
		return typeof e
	}:


	function(e) {
		return e && "function" == typeof o.
	default &&e.constructor === o.
	default &&e !== o.
	default.prototype ? "symbol":
		typeof e
	};
	t.
default = "function" == typeof o.
default &&"symbol" === l(a.
default) ?
	function(e) {
		return void 0 === e ? "undefined" : l(e)
	}:


	function(e) {
		return e && "function" == typeof o.
	default &&e.constructor === o.
	default &&e !== o.
	default.prototype ? "symbol":
		void 0 === e ? "undefined" : l(e)
	}
}, function(e, t, i) {
	"use strict";
	(function(e) {
		var t = i(29),
			n = function(e) {
				return e && e.__esModule ? e : {
				default:
					e
				}
			}(t);
		e(document).on("click", ".J_ota, .J_ota_link", function(t) {
			var i, s, a, r, o, l = navigator.userAgent,
				c = /iP(ad|od|hone)/i.test(l),
				d = /Android/i.test(l),
				u = c && Number(l.match(/OS\s+(\d+_\d+)/)[1].replace(/_/g, ".")),
				h = c && u >= 9,
				p = e(this),
				f = e("#J_deeplink"),
				m = e("#J_page_name").val() || "",
				v = e(this).attr("data-value") || "",
				g = e(this).attr("href");
			p.hasClass("J_ota") ? s = f && "home" === f.val() ? "https://m.ztm.me" : window.location.href : p.hasClass("J_ota_link") && (s = p.attr("href"));
			var b = window.location.hostname + window.location.pathname;
			"post.m.ztm.me/" !== b && "m.ztm.me/list/" !== b && "news.m.ztm.me/" !== b && "pinpai.m.ztm.me/" !== b || (s = "https://m.ztm.me"), i = encodeURIComponent((0, n.
		default)({
				url: s,
				v: "8.6",
				f: "iphone",
				frompage: v,
				targetpage: m
			})), p.hasClass("J_ota_link") ? (a = p.attr("data-article"), r = p.attr("data-channel")) : p.hasClass("J_ota") && (a = e("#J_article_number").val() || e("#J_article_id").val(), r = e("#J_article_name").val()), o = "search" === r;
			var y = /micromessenger/i.test(l);
			if (!h || o || y) {
				t.preventDefault();
				var w = "smzdm://" + r + "/" + a + '?json={"channelName":"' + r + '","linkVal":"' + a + '","keyWord":"","frompage":"' + v + '","targetpage":"' + m + '"}';
				if ("test" === r && d && (w = "smzdm://zhongce/" + a + '?json={"channelName":"' + r + '","linkVal":"' + a + '","keyWord":"","frompage":"' + v + '","targetpage":"' + m + '"}'), "pingce" === r && d && (w = "smzdm://test/" + a + '?json={"channelName":"' + r + '","linkVal":"' + a + '","keyWord":"","frompage":"' + v + '","targetpage":"' + m + '"}'), "search" === r) {
					w = 'smzdm://search?json={"channelName":"home","keyWord":"' + encodeURIComponent(e(".keyWord").val()) + '","yc_type":"","search_type":"1","frompage":"' + v + '","targetpage":"' + m + '"}'
				}!
				function(e, t, i, n, s, a) {
					i = i || 604800, i *= 1e3;
					var r = new Date;
					r.setTime(r.getTime() + i), document.cookie = encodeURIComponent(e) + "=" + encodeURIComponent(t) + (r ? "; expires=" + r.toGMTString() : "") + (n ? "; path=" + n : "/") + (s ? "; domain=" + s : "") + (a ? "; secure" : "")
				}("deeplink_url", w, "", "/", ".ztm.me"), window.location = g
			} else t.preventDefault(), window.location = "https://app.ztm.me?json=" + i
		})
	}).call(t, i(1))
}, function(e, t) {}, function(e, t, i) {
	var n = i(10),
		s = i(2).document,
		a = n(s) && n(s.createElement);
	e.exports = function(e) {
		return a ? s.createElement(e) : {}
	}
}, function(e, t, i) {
	e.exports = !i(3) && !i(11)(function() {
		return 7 != Object.defineProperty(i(34)("div"), "a", {
			get: function() {
				return 7
			}
		}).a
	})
}, function(e, t) {
	var i = {}.toString;
	e.exports = function(e) {
		return i.call(e).slice(8, -1)
	}
}, function(e, t, i) {
	"use strict";
	var n = i(14),
		s = i(9),
		a = i(41),
		r = i(8),
		o = i(17),
		l = i(74),
		c = i(22),
		d = i(78),
		u = i(7)("iterator"),
		h = !([].keys && "next" in [].keys()),
		p = function() {
			return this
		};
	e.exports = function(e, t, i, f, m, v, g) {
		l(i, t, f);
		var b, y, w, x = function(e) {
				if (!h && e in C) return C[e];
				switch (e) {
				case "keys":
				case "values":
					return function() {
						return new i(this, e)
					}
				}
				return function() {
					return new i(this, e)
				}
			},
			S = t + " Iterator",
			T = "values" == m,
			E = !1,
			C = e.prototype,
			k = C[u] || C["@@iterator"] || m && C[m],
			P = k || x(m),
			z = m ? T ? x("entries") : P : void 0,
			M = "Array" == t ? C.entries || k : k;
		if (M && (w = d(M.call(new e))) !== Object.prototype && w.next && (c(w, S, !0), n || "function" == typeof w[u] || r(w, u, p)), T && k && "values" !== k.name && (E = !0, P = function() {
			return k.call(this)
		}), n && !g || !h && !E && C[u] || r(C, u, P), o[t] = P, o[S] = p, m) if (b = {
			values: T ? P : x("values"),
			keys: v ? P : x("keys"),
			entries: z
		}, g) for (y in b) y in C || a(C, y, b[y]);
		else s(s.P + s.F * (h || E), t, b);
		return b
	}
}, function(e, t, i) {
	var n = i(40),
		s = i(20).concat("length", "prototype");
	t.f = Object.getOwnPropertyNames ||
	function(e) {
		return n(e, s)
	}
}, function(e, t) {
	t.f = Object.getOwnPropertySymbols
}, function(e, t, i) {
	var n = i(4),
		s = i(5),
		a = i(69)(!1),
		r = i(23)("IE_PROTO");
	e.exports = function(e, t) {
		var i, o = s(e),
			l = 0,
			c = [];
		for (i in o) i != r && n(o, i) && c.push(i);
		for (; t.length > l;) n(o, i = t[l++]) && (~a(c, i) || c.push(i));
		return c
	}
}, function(e, t, i) {
	e.exports = i(8)
}, function(e, t, i) {
	var n = i(19);
	e.exports = function(e) {
		return Object(n(e))
	}
}, function(e, t, i) {
	var n = i(6),
		s = i(12),
		a = i(16);
	e.exports = i(3) ? Object.defineProperties : function(e, t) {
		s(e);
		for (var i, r = a(t), o = r.length, l = 0; o > l;) n.f(e, i = r[l++], t[i]);
		return e
	}
}, function(e, t, i) {
	var n = i(21),
		s = i(13),
		a = i(5),
		r = i(18),
		o = i(4),
		l = i(35),
		c = Object.getOwnPropertyDescriptor;
	t.f = i(3) ? c : function(e, t) {
		if (e = a(e), t = r(t, !0), l) try {
			return c(e, t)
		} catch (e) {}
		if (o(e, t)) return s(!n.f.call(e, t), e[t])
	}
}, function(e, t) {}, function(e, t, i) {
	var n = i(9),
		s = i(0),
		a = i(11);
	e.exports = function(e, t) {
		var i = (s.Object || {})[e] || Object[e],
			r = {};
		r[e] = t(i), n(n.S + n.F * a(function() {
			i(1)
		}), "Object", r)
	}
}, function(e, t, i) {
	"use strict";
	(function(e, t) {
		var n = i(31),
			s = function(e) {
				return e && e.__esModule ? e : {
				default:
					e
				}
			}(n),
			a = navigator.userAgent.toLowerCase(),
			r = 0,
			o = i(30),
			l = i(88),
			c = {
				showAndHide: function(t, i) {
					e(t).click(function() {
						e(i).toggle()
					})
				},
				HideApp: function(i, n) {
					e(i).click(function() {
						t.cookie("smzdm_download_client_close", "1", {
							path: "/",
							domain: "ztm.me",
							expires: 1
						}), e(n).toggle()
					})
				},
				shareBlockCenter: function() {
					var t = e("#share_block").outerHeight();
					e("#share_block").css({
						top: "50%",
						"margin-top": -t / 2
					})
				},
				zhi_cb: function(t, i) {
					t.parent().hasClass("voted") || (1 === Number(i) ? (t.find("span").html(Number(t.find("span").html()) + 1), t.parent().addClass("voted"), t.parent().hasClass("tags-box") ? (e(".fixed-bottom .btn-l").addClass("voted"), e(".fixed-bottom .z-group-data:first").find("span").html(Number(e(".fixed-bottom .z-group-data:first").find("span").html()) + 1)) : t.parent().hasClass("btn-l") && (e(".tags-box").addClass("voted"), e(".tags-box .z-group-data:first").find("span").html(Number(e(".tags-box .z-group-data:first").find("span").html()) + 1))) : -1 === Number(i) && (t.find("span").html(Number(t.find("span").html()) + 1), t.parent().addClass("voted"), e(".fixed-bottom .btn-l").addClass("voted")))
				},
				zan_cb: function(e) {
					e.hasClass("active") || (e.find(".zm-icon-thumb-up-o").removeClass("zm-icon-thumb-up-o").addClass("zm-icon-thumb-up"), e.find("span").html(Number(e.find("span").html()) + 1), e.addClass("active"))
				},
				statusInit: function() {
					var t, i = e(".J_zhi_like_fav"),
						n = [0, 3, 6, 7, 9, 10, 11, 16, 66],
						s = [
							[3, "youhui"],
							[6, "news"],
							[7, "test"],
							[11, "yuanchuang"],
							[16, "second"],
							[31, "pinpai_zhuanti"],
							[66, "haowubang"]
						];
					i.each(function() {
						var i, a, r = e(this),
							l = r.data("type"),
							c = Number(r.data("channel")),
							d = Number(r.data("article"));
						"zhi" === l || "zan" === l ? e.each(n, function(e, n) {
							if (n === c && (i = "smzdm_rating_" + n, a = o.getCookie(i))) {
								a = JSON.parse(a);
								for (t in a) d === t && ("zan" === l ? (r.find(".zm-icon-thumb-up-o").removeClass("zm-icon-thumb-up-o").addClass("zm-icon-thumb-up"), r.addClass("active")) : "zhi" === l && (r.parent().hasClass("voted") || r.parent().addClass("voted")))
							}
						}) : "fav" === l && e.each(s, function(t, n) {
							i = "smzdm_collection_" + n[1], "" !== (a = o.getCookie(i)) && c === n[0] && -1 !== e.inArray("" + d, a.split(",")) && (r.addClass("active"), r.find("i").removeClass("zm-icon-star-o").addClass("zm-icon-star"))
						})
					})
				},
				_downloadChangeMin: function() {
					e(".download-normal").hide(), e(".mode").hide(), e(".download-mini").css("display", "block"), e(".publish-button").css("display", "block"), e(".fixed-bottom").addClass("flex"), /smzdmapp/.test(a) && (e(".download-mini").hide(), e(".publish-button").hide(), "1000420" === e("#article_detail_id").val() && e(".fixed-bottom").removeClass("flex")), r = 1
				},
				_downloadMinimize: function() {
					e(".foot-banner").on("click", ".download-close", function() {
						c._downloadChangeMin(), o.setCookie("DISABLE_APP_TIP", "1", 86400, "/", ".ztm.me")
					})
				},
				_downloadChangeMax: function() {
					if (o.getCookie("DISABLE_APP_TIP")) return !1;
					var t = o.GetRequest();
					"QQ" === t.utm_source && "hezuo" === t.utm_medium && "browser" === t.utm_campaign || "hezuo" === t.utm_medium && "baidusearch" === t.utm_campaign || /smzdmapp/.test(a) || e(".download-normal").show(), e(".fixed-bottom").removeClass("flex"), e(".download-mini").hide(), e(".publish-button").hide(), e(".mode").hide(), r = 0
				},
				_scrollFunc: function(t) {
					var i = t || window.event;
					if (e(window).scrollTop() > 100 ? e(".return-top").show() : e(".return-top").hide(), e(window).scrollTop() > 0) if (i.wheelDelta) {
						if (-1 === r) return !1;
						i.wheelDelta > 0 && 0 !== r ? c._downloadChangeMax() : i.wheelDelta < 0 && 0 === r && c._downloadChangeMin()
					} else if (i.detail) {
						if (-1 === r) return !1;
						i.detail > 0 && 0 !== r && c._downloadChangeMax(), i.detail < 0 && 0 === r && c._downloadChangeMin()
					}
				},
				_wheelForDownload: function() {
					document.addEventListener && document.addEventListener("DOMMouseScroll", this._scrollFunc, !1), window.onmousewheel = document.onmousewheel = this._scrollFunc
				},
				_touchForDownload: function() {
					var t, i, n, s;
					e("body").on("touchstart", function(e) {
						t = e.originalEvent.changedTouches[0].pageX, i = e.originalEvent.changedTouches[0].pageY
					}), e("body").on("touchmove", function(a) {
						n = a.originalEvent.changedTouches[0].pageX, s = a.originalEvent.changedTouches[0].pageY;
						var r = n - t,
							o = s - i;
						Math.abs(o) > Math.abs(r) && o > 10 ? c._downloadChangeMax() : Math.abs(o) > Math.abs(r) && o < 0 && e(document).height() - window.innerHeight - e(window).scrollTop() > 0 && c._downloadChangeMin()
					})
				},
				hide_footer: function() {
					a.indexOf("windows nt") > -1 || a.indexOf("windows phone") > -1 ? (e(".download-normal").hide(), e(".mode").hide(), e(".download-mini").hide(), e(".publish-button").hide(), e(".fixed-bottom").addClass("flex"), /smzdmapp/.test(a) && "1000420" === e("#article_detail_id").val() && e(".fixed-bottom").removeClass("flex")) : (c._downloadMinimize(), c._wheelForDownload(), c._touchForDownload())
				},
				returnTop: function() {
					e(".return-top").on("click", function() {
						document.body.clientWidth <= 640 && c._downloadChangeMax(), e(this).hide(), e("html, body").animate({
							scrollTop: 0
						}, 400)
					})
				},
				createUtip: function() {
					if (e("header").length) {
						e("header").after('<div class="mchrtips-wrap"><p>为保障浏览支付安全，请升级最新版 chrome 浏览器。</p><span class="mchrtips-close"></span></div>');
						var t;
						t = 1 === e(".top-applink").length ? e(".top-applink").height() + e("header").height() : e("header").height(), e(".mchrtips-wrap").css("top", t), e(".mchrtips-close").on("click", function() {
							o.setCookie("chrome_v", "1", 86400, "/", ".ztm.me", !1), e(".mchrtips-wrap").remove()
						})
					}
				}
			};
		e(document).ready(function() {
			c.returnTop(), c.hide_footer(), a.indexOf("newsapp") > -1 && (document.title = "什么值得买ztm.me"), e("#js-foot-comments").click(function() {
				var t = e("#comments").offset().top,
					i = e("#J_header_top");
				t -= i.length ? i.height() : 0, e("html, body").animate({
					scrollTop: t
				}, 150)
			}), c.HideApp(".icon_appclose", "#app"), c.showAndHide("#share_block .cancel", "#share_block"), e(".button_share").click(function() {
				c.shareBlockCenter(), e("#share_block").show()
			}), e("#share_block").find("a").each(function() {
				e(this).touchmove = "event.preventDefault()"
			}), l.init(), e(window).scroll(function() {
				e(window).scrollTop() > 100 ? e(".return-top").show() : e(".return-top").hide()
			}), function() {
				var t = o.GetRequest();
				if ("QQ" === t.utm_source && "hezuo" === t.utm_medium && "browser" === t.utm_campaign || /smzdmapp/.test(a)) e(".download-normal").hide(), e(".head_banner .icon_back").hide();
				else if ("hezuo" === t.utm_medium && "baidusearch" === t.utm_campaign) e(".download-normal").hide();
				else {
					e(".head_banner .icon_back").show();
					var i = o.getCookie("DISABLE_APP_TIP");
					if (i) return;
					e(".download-normal").show()
				}
			}(), c.statusInit(), e(document).on("click", ".J_zhi_like_fav", function() {
				var t, i = e(this),
					n = i.data("type"),
					s = Number(i.data("channel")),
					a = Number(i.data("article")),
					r = i.data("zhi-type");
				if ("zhi" === n || "zan" === n) {
					if ("zhi" === n) {
						if (i.parent().hasClass("voted")) return o.popPrompt("你已经点过值了"), !1;
						t = 1 === Number(i.attr("data-zhi-type")) ? "点值" : "点不值"
					} else if ("zan" === n) {
						if (i.hasClass("active")) return o.popPrompt("你已经点过赞了"), !1;
						t = "点赞", r = 1
					}
					e.ajax({
						type: "get",
						url: "https://zhiyou.m.ztm.me/user/rating/jsonp_add",
						data: {
							channel_id: s,
							article_id: a,
							rating: r,
							client_type: /smzdm/i.test(navigator.userAgent) ? /android/i.test(navigator.userAgent) ? "android" : "iphone" : "WAP",
							event_key: "点值",
							otype: t,
							aid: a,
							p: i.attr("data-position") || i.parents("li").attr("data-position") || "无",
							cid: s || "无",
							source: "无",
							atp: i.attr("data-atp") || i.parents("li").attr("data-atp") || "无",
							tagID: i.attr("data-tagID") || i.parents("li").attr("data-tagID") || "无",
							sourcePage: document.referrer || "无",
							sourceMode: "无"
						},
						dataType: "jsonp",
						jsonp: "callback",
						success: function(e) {
							"zhi" === n ? c.zhi_cb(i, r) : c.zan_cb(i), o.setCookieInObj("smzdm_rating_" + s, a, r)
						},
						error: function(e) {}
					})
				} else if ("fav" === n) {
					var l = {
						client_type: "WAP",
						event_key: "收藏",
						otype: i.hasClass("active") ? "取消收藏" : "收藏",
						aid: a,
						p: i.data("position") ? i.data("position") : "无",
						cid: i.data("cid") ? i.data("cid") : "无",
						source: "无",
						atp: i.data("atp") ? i.data("atp") : "无",
						tagID: i.data("tagid") ? i.data("tagid") : "无",
						sourcePage: document.referrer ? document.referrer : "无",
						sourceMode: "无"
					};
					e.ajax({
						type: "get",
						url: "https://zhiyou.m.ztm.me/user/favorites/jsonp_favorite",
						data: {
							channel_id: s,
							article_id: a,
							client_type: l.client_type,
							event_key: l.event_key,
							otype: l.otype,
							aid: l.aid,
							p: l.p,
							cid: l.cid,
							source: l.source,
							atp: l.atp,
							tagID: l.tagID,
							sourcePage: l.sourcePage,
							sourceMode: l.sourceMode
						},
						dataType: "jsonp",
						jsonp: "callback",
						success: function(t) {
							var n, r = {
								3: "youhui",
								6: "news",
								7: "test",
								8: "pingce",
								11: "yuanchuang",
								12: "wiki",
								16: "2",
								31: "pinpai_zhuanti",
								66: "haowubang"
							};
							0 === t.error_code ? (n = Number(i.find("span").html()) + 1, n < 0 && (n = 0), i.find("i").removeClass("zm-icon-star-o").addClass("zm-icon-star"), i.find("span").html(n), i.addClass("active"), e.each(r, function(e, t) {
								e === s && o.setCookieInArr("smzdm_collection_" + t, a)
							}), o.popPrompt("收藏成功")) : 2 === t.error_code ? (n = Number(i.find("span").html()) - 1, n < 0 && (n = 0), e.each(r, function(e, t) {
								Number(e) === s && o.deleteCookieInArr("smzdm_collection_" + t, a)
							}), i.find("i").removeClass("zm-icon-star").addClass("zm-icon-star-o"), i.find("span").html(n), i.removeClass("active"), o.popPrompt("取消收藏成功")) : 5 === t.error_code ? window.location.href = "https://zhiyou.m.ztm.me/user/login/quick/?redirect_to=" + location.href : 6 === t.error_code && o.popPrompt("收藏失败，请稍后重新操作")
						},
						error: function(e) {}
					})
				}
			});
			var t = {},
				i = /(msie|firefox|chrome|opera|version|crios|CriOS).*?([\d.]+)/;
			if (null !== a.match(i)) {
				var n = a.match(i);
				t.browser = n[1].replace(/version/, "safari"), t.ver = n[2];
				var r = navigator.userAgent.indexOf("QQBrowser");
				o.getCookie("chrome_v") || ("CRIOS" === t.browser.toUpperCase() && parseInt(t.ver) <= 54 && r < 0 ? c.createUtip() : "chrome" === t.browser && parseInt(t.ver) <= 54 && "object" === (0, s.
			default)(navigator.credentials) && r < 0 && c.createUtip())
			}
			return !1
		})
	}).call(t, i(1), i(1))
}, function(e, t) {}, function(e, t, i) {
	"use strict";
	(function(e) {
		var t = i(30),
			n = i(57),
			s = i(55),
			a = function(e) {
				for (var t = window.location.search.substring(1), i = t.split("&"), n = 0; n < i.length; n++) {
					var s = i[n].split("=");
					if (s[0] === e) return s[1]
				}
				return !1
			},
			r = e("#J_ga_tag").val(),
			o = e("#J_ga_name").val(),
			l = e("#J_share_pic").val(),
			c = e("#J_share_link").val(),
			d = e("#J_article_name").val(),
			u = "详情页" === o || "tag" === d ? "1" : "",
			h = [];
		e(function() {
			(/^https?:\/\/m\.baidu\.com/i.test(document.referrer) || /\+http:\/\/www\.baidu\.com\/search\/spider\.html/i.test(navigator.userAgent)) && (document.cookie = "FROM_BD=1;path=/;domain=.ztm.me;");
			var i = /baiduboxapp/i.test(navigator.userAgent),
				r = t.getCookie("FROM_BD"),
				o = "wxsearch" === a("utm_source"),
				l = /smzdmapp/i.test(navigator.userAgent),
				c = /\+http:\/\/www\.baidu\.com\/search\/spider\.html/i.test(navigator.userAgent) || /Baiduspider/i.test(navigator.userAgent);
			if (r || i || l || c || o) t.getCookie("DISABLE_APP_TIP") || "/fenlei/" === location.pathname || l || o ? (e(".top-applink").remove(), e(".header-in").addClass("fixed")) : (e(".top-applink").show(), i && e(".J_baidu_app").length && setTimeout(function() {
				e(".J_baidu_app>div:nth-child(2)>div>div>div:first-child>div").text("去关注").css("background", "#f04848"), e(".baidu-box").css({
					height: "auto",
					left: "0"
				})
			}, 500), function() {
				var t = e(".header-in"),
					i = function() {
						e("header.head_banner").offset().top <= e(document).scrollTop() ? t.addClass("fixed") : t.removeClass("fixed")
					};
				e(window).bind("load", i).scroll(i)
			}());
			else if (navigator.userAgent && !c) {
				e(".top-applink").remove(), e(".header-in").addClass("fixed"), "1" === e("#J_from_share").val() ? e(".foot-banner").prepend(h[1]) : e(".foot-banner").prepend(h[0]), e(".right-return-top").append(h[2]);
				var d = t.getCookie("DISABLE_APP_TIP");
				d || e(".foot-banner .download-normal").show()
			}
			if (e(".top-applink").on("click", ".J_toplink_close", function() {
				e(".top-applink").hide(), t.setCookie("DISABLE_APP_TIP", "1", 86400, "/", ".ztm.me")
			}), e("#J_bd_template").length) {
				var u = e("#J_bd_template").html();
				s.escape = function(e) {
					return e
				}, s.parse(u), e.ajax({
					type: "GET",
					url: "https://m.ztm.me/ajax_youhui_three_data",
					data: {
						channel_id: e("#channel_id").val()
					},
					dataType: "json",
					success: function(t) {
						var i = "";
						e.each(t.data, function(e, t) {
							var n = s.render(u, t);
							i += n
						}), e("#J_banner_box").append(i);
						new n(".top-applink-haojia", {
							autoplay: {
								delay: 4e3,
								disableOnInteraction: !1
							},
							loop: !0,
							pagination: {
								el: ".swiper-pagination",
								type: "bullets"
							}
						})
					},
					error: function(e) {}
				})
			}
		})
	}).call(t, i(1))
}, function(e, t) {}, function(e, t) {}, function(e, t) {}, function(e, t, i) {
	var n = i(0),
		s = n.JSON || (n.JSON = {
			stringify: JSON.stringify
		});
	e.exports = function(e) {
		return s.stringify.apply(s, arguments)
	}
}, function(e, t, i) {
	"use strict";
	(function(e) {
		e(function() {
			new(i(100))(".channel-list", {
				scrollX: !0,
				scrollY: !1,
				click: !0,
				disablePointer: !0,
				disableTouch: !1,
				disableMouse: !1,
				tap: !0
			}).scrollToElement(".cur-tab", 200, !0, !0)
		})
	}).call(t, i(1))
}, function(e, t, i) {
	var n, s, a;
	/*!
	 * mustache.js - Logic-less {{mustache}} templates with JavaScript
	 * http://github.com/janl/mustache.js
	 */
	!
	function(i, r) {
		"object" == typeof t && t && "string" != typeof t.nodeName ? r(t) : (s = [t], n = r, void 0 !== (a = "function" == typeof n ? n.apply(t, s) : n) && (e.exports = a))
	}(0, function(e) {
		function t(e) {
			return "function" == typeof e
		}
		function i(e) {
			return m(e) ? "array" : typeof e
		}
		function n(e) {
			return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
		}
		function s(e, t) {
			return null != e && "object" == typeof e && t in e
		}
		function a(e, t) {
			return v.call(e, t)
		}
		function r(e) {
			return !a(g, e)
		}
		function o(e) {
			return String(e).replace(/[&<>"'`=\/]/g, function(e) {
				return b[e]
			})
		}
		function l(t, i) {
			function s(e) {
				if ("string" == typeof e && (e = e.split(w, 2)), !m(e) || 2 !== e.length) throw new Error("Invalid tags: " + e);
				a = new RegExp(n(e[0]) + "\\s*"), o = new RegExp("\\s*" + n(e[1])), l = new RegExp("\\s*" + n("}" + e[1]))
			}
			if (!t) return [];
			var a, o, l, h = [],
				p = [],
				f = [],
				v = !1,
				g = !1;
			s(i || e.tags);
			for (var b, E, C, k, P, z, M = new u(t); !M.eos();) {
				if (b = M.pos, C = M.scanUntil(a)) for (var _ = 0, I = C.length; _ < I; ++_) k = C.charAt(_), r(k) ? f.push(p.length) : g = !0, p.push(["text", k, b, b + 1]), b += 1, "\n" === k &&
				function() {
					if (v && !g) for (; f.length;) delete p[f.pop()];
					else f = [];
					v = !1, g = !1
				}();
				if (!M.scan(a)) break;
				if (v = !0, E = M.scan(T) || "name", M.scan(y), "=" === E ? (C = M.scanUntil(x), M.scan(x), M.scanUntil(o)) : "{" === E ? (C = M.scanUntil(l), M.scan(S), M.scanUntil(o), E = "&") : C = M.scanUntil(o), !M.scan(o)) throw new Error("Unclosed tag at " + M.pos);
				if (P = [E, C, b, M.pos], p.push(P), "#" === E || "^" === E) h.push(P);
				else if ("/" === E) {
					if (!(z = h.pop())) throw new Error('Unopened section "' + C + '" at ' + b);
					if (z[1] !== C) throw new Error('Unclosed section "' + z[1] + '" at ' + b)
				} else "name" === E || "{" === E || "&" === E ? g = !0 : "=" === E && s(C)
			}
			if (z = h.pop()) throw new Error('Unclosed section "' + z[1] + '" at ' + M.pos);
			return d(c(p))
		}
		function c(e) {
			for (var t, i, n = [], s = 0, a = e.length; s < a; ++s)(t = e[s]) && ("text" === t[0] && i && "text" === i[0] ? (i[1] += t[1], i[3] = t[3]) : (n.push(t), i = t));
			return n
		}
		function d(e) {
			for (var t, i, n = [], s = n, a = [], r = 0, o = e.length; r < o; ++r) switch (t = e[r], t[0]) {
			case "#":
			case "^":
				s.push(t), a.push(t), s = t[4] = [];
				break;
			case "/":
				i = a.pop(), i[5] = t[2], s = a.length > 0 ? a[a.length - 1][4] : n;
				break;
			default:
				s.push(t)
			}
			return n
		}
		function u(e) {
			this.string = e, this.tail = e, this.pos = 0
		}
		function h(e, t) {
			this.view = e, this.cache = {
				".": this.view
			}, this.parent = t
		}
		function p() {
			this.cache = {}
		}
		var f = Object.prototype.toString,
			m = Array.isArray ||
		function(e) {
			return "[object Array]" === f.call(e)
		}, v = RegExp.prototype.test, g = /\S/, b = {
			"&": "&amp;",
			"<": "&lt;",
			">": "&gt;",
			'"': "&quot;",
			"'": "&#39;",
			"/": "&#x2F;",
			"`": "&#x60;",
			"=": "&#x3D;"
		}, y = /\s*/, w = /\s+/, x = /\s*=/, S = /\s*\}/, T = /#|\^|\/|>|\{|&|=|!/;
		u.prototype.eos = function() {
			return "" === this.tail
		}, u.prototype.scan = function(e) {
			var t = this.tail.match(e);
			if (!t || 0 !== t.index) return "";
			var i = t[0];
			return this.tail = this.tail.substring(i.length), this.pos += i.length, i
		}, u.prototype.scanUntil = function(e) {
			var t, i = this.tail.search(e);
			switch (i) {
			case -1:
				t = this.tail, this.tail = "";
				break;
			case 0:
				t = "";
				break;
			default:
				t = this.tail.substring(0, i), this.tail = this.tail.substring(i)
			}
			return this.pos += t.length, t
		}, h.prototype.push = function(e) {
			return new h(e, this)
		}, h.prototype.lookup = function(e) {
			var i, n = this.cache;
			if (n.hasOwnProperty(e)) i = n[e];
			else {
				for (var a, r, o = this, l = !1; o;) {
					if (e.indexOf(".") > 0) for (i = o.view, a = e.split("."), r = 0; null != i && r < a.length;) r === a.length - 1 && (l = s(i, a[r])), i = i[a[r++]];
					else i = o.view[e], l = s(o.view, e);
					if (l) break;
					o = o.parent
				}
				n[e] = i
			}
			return t(i) && (i = i.call(this.view)), i
		}, p.prototype.clearCache = function() {
			this.cache = {}
		}, p.prototype.parse = function(e, t) {
			var i = this.cache,
				n = i[e];
			return null == n && (n = i[e] = l(e, t)), n
		}, p.prototype.render = function(e, t, i) {
			var n = this.parse(e),
				s = t instanceof h ? t : new h(t);
			return this.renderTokens(n, s, i, e)
		}, p.prototype.renderTokens = function(e, t, i, n) {
			for (var s, a, r, o = "", l = 0, c = e.length; l < c; ++l) r = void 0, s = e[l], a = s[0], "#" === a ? r = this.renderSection(s, t, i, n) : "^" === a ? r = this.renderInverted(s, t, i, n) : ">" === a ? r = this.renderPartial(s, t, i, n) : "&" === a ? r = this.unescapedValue(s, t) : "name" === a ? r = this.escapedValue(s, t) : "text" === a && (r = this.rawValue(s)), void 0 !== r && (o += r);
			return o
		}, p.prototype.renderSection = function(e, i, n, s) {
			function a(e) {
				return r.render(e, i, n)
			}
			var r = this,
				o = "",
				l = i.lookup(e[1]);
			if (l) {
				if (m(l)) for (var c = 0, d = l.length; c < d; ++c) o += this.renderTokens(e[4], i.push(l[c]), n, s);
				else if ("object" == typeof l || "string" == typeof l || "number" == typeof l) o += this.renderTokens(e[4], i.push(l), n, s);
				else if (t(l)) {
					if ("string" != typeof s) throw new Error("Cannot use higher-order sections without the original template");
					l = l.call(i.view, s.slice(e[3], e[5]), a), null != l && (o += l)
				} else o += this.renderTokens(e[4], i, n, s);
				return o
			}
		}, p.prototype.renderInverted = function(e, t, i, n) {
			var s = t.lookup(e[1]);
			if (!s || m(s) && 0 === s.length) return this.renderTokens(e[4], t, i, n)
		}, p.prototype.renderPartial = function(e, i, n) {
			if (n) {
				var s = t(n) ? n(e[1]) : n[e[1]];
				return null != s ? this.renderTokens(this.parse(s), i, n, s) : void 0
			}
		}, p.prototype.unescapedValue = function(e, t) {
			var i = t.lookup(e[1]);
			if (null != i) return i
		}, p.prototype.escapedValue = function(t, i) {
			var n = i.lookup(t[1]);
			if (null != n) return e.escape(n)
		}, p.prototype.rawValue = function(e) {
			return e[1]
		}, e.name = "mustache.js", e.version = "2.3.0", e.tags = ["{{", "}}"];
		var E = new p;
		return e.clearCache = function() {
			return E.clearCache()
		}, e.parse = function(e, t) {
			return E.parse(e, t)
		}, e.render = function(e, t, n) {
			if ("string" != typeof e) throw new TypeError('Invalid template! Template should be a "string" but "' + i(e) + '" was given as the first argument for mustache#render(template, view, partials)');
			return E.render(e, t, n)
		}, e.to_html = function(i, n, s, a) {
			var r = e.render(i, n, s);
			if (!t(a)) return r;
			a(r)
		}, e.escape = o, e.Scanner = u, e.Context = h, e.Writer = p, e
	})
}, function(e, t) {}, function(e, t, i) {
	"use strict";

	function n(e) {
		return e && e.__esModule ? e : {
		default:
			e
		}
	}
	var s, a, r = i(89),
		o = n(r),
		l = i(90),
		c = n(l),
		d = i(91),
		u = n(d),
		h = i(87),
		p = n(h),
		f = i(31),
		m = n(f);
	!
	function(n, r) {
		"object" === (0, m.
	default)(t) && void 0 !== e ? e.exports = r() : (s = r, void 0 !== (a = "function" == typeof s ? s.call(t, i, t, e) : s) && (e.exports = a))
	}(0, function() {
		function e(e, t) {
			var i = [],
				n = 0;
			if (e && !t && e instanceof U) return e;
			if (e) if ("string" == typeof e) {
				var s, a, r = e.trim();
				if (r.indexOf("<") >= 0 && r.indexOf(">") >= 0) {
					var o = "div";
					for (0 === r.indexOf("<li") && (o = "ul"), 0 === r.indexOf("<tr") && (o = "tbody"), 0 !== r.indexOf("<td") && 0 !== r.indexOf("<th") || (o = "tr"), 0 === r.indexOf("<tbody") && (o = "table"), 0 === r.indexOf("<option") && (o = "select"), a = document.createElement(o), a.innerHTML = r, n = 0; n < a.childNodes.length; n += 1) i.push(a.childNodes[n])
				} else for (s = t || "#" !== e[0] || e.match(/[ .<>:~]/) ? (t || document).querySelectorAll(e.trim()) : [document.getElementById(e.trim().split("#")[1])], n = 0; n < s.length; n += 1) s[n] && i.push(s[n])
			} else if (e.nodeType || e === window || e === document) i.push(e);
			else if (e.length > 0 && e[0].nodeType) for (n = 0; n < e.length; n += 1) i.push(e[n]);
			return new U(i)
		}
		function t(e) {
			for (var t = [], i = 0; i < e.length; i += 1) - 1 === t.indexOf(e[i]) && t.push(e[i]);
			return t
		}
		function i(e) {
			var t = this;
			if (void 0 === e) return this;
			for (var i = e.split(" "), n = 0; n < i.length; n += 1) for (var s = 0; s < this.length; s += 1) void 0 !== t[s].classList && t[s].classList.add(i[n]);
			return this
		}
		function n(e) {
			for (var t = this, i = e.split(" "), n = 0; n < i.length; n += 1) for (var s = 0; s < this.length; s += 1) void 0 !== t[s].classList && t[s].classList.remove(i[n]);
			return this
		}
		function s(e) {
			return !!this[0] && this[0].classList.contains(e)
		}
		function a(e) {
			for (var t = this, i = e.split(" "), n = 0; n < i.length; n += 1) for (var s = 0; s < this.length; s += 1) void 0 !== t[s].classList && t[s].classList.toggle(i[n]);
			return this
		}
		function r(e, t) {
			var i = arguments,
				n = this;
			if (1 !== arguments.length || "string" != typeof e) {
				for (var s = 0; s < this.length; s += 1) if (2 === i.length) n[s].setAttribute(e, t);
				else for (var a in e) n[s][a] = e[a], n[s].setAttribute(a, e[a]);
				return this
			}
			if (this[0]) return this[0].getAttribute(e)
		}
		function l(e) {
			for (var t = this, i = 0; i < this.length; i += 1) t[i].removeAttribute(e);
			return this
		}
		function d(e, t) {
			var i, n = this;
			if (void 0 !== t) {
				for (var s = 0; s < this.length; s += 1) i = n[s], i.dom7ElementDataStorage || (i.dom7ElementDataStorage = {}), i.dom7ElementDataStorage[e] = t;
				return this
			}
			if (i = this[0]) {
				if (i.dom7ElementDataStorage && e in i.dom7ElementDataStorage) return i.dom7ElementDataStorage[e];
				var a = i.getAttribute("data-" + e);
				if (a) return a
			} else;
		}
		function h(e) {
			for (var t = this, i = 0; i < this.length; i += 1) {
				var n = t[i].style;
				n.webkitTransform = e, n.transform = e
			}
			return this
		}
		function f(e) {
			var t = this;
			"string" != typeof e && (e += "ms");
			for (var i = 0; i < this.length; i += 1) {
				var n = t[i].style;
				n.webkitTransitionDuration = e, n.transitionDuration = e
			}
			return this
		}
		function v() {
			function t(t) {
				var i = t.target;
				if (i) {
					var n = t.target.dom7EventData || [];
					if (n.unshift(t), e(i).is(o)) l.apply(i, n);
					else for (var s = e(i).parents(), a = 0; a < s.length; a += 1) e(s[a]).is(o) && l.apply(s[a], n)
				}
			}
			function i(e) {
				var t = e && e.target ? e.target.dom7EventData || [] : [];
				t.unshift(e), l.apply(this, t)
			}
			for (var n = this, s = [], a = arguments.length; a--;) s[a] = arguments[a];
			var r = s[0],
				o = s[1],
				l = s[2],
				c = s[3];
			if ("function" == typeof s[1]) {
				var d;
				d = s, r = d[0], l = d[1], c = d[2], o = void 0
			}
			c || (c = !1);
			for (var u, h = r.split(" "), p = 0; p < this.length; p += 1) {
				var f = n[p];
				if (o) for (u = 0; u < h.length; u += 1) f.dom7LiveListeners || (f.dom7LiveListeners = []), f.dom7LiveListeners.push({
					type: r,
					listener: l,
					proxyListener: t
				}), f.addEventListener(h[u], t, c);
				else for (u = 0; u < h.length; u += 1) f.dom7Listeners || (f.dom7Listeners = []), f.dom7Listeners.push({
					type: r,
					listener: l,
					proxyListener: i
				}), f.addEventListener(h[u], i, c)
			}
			return this
		}
		function g() {
			for (var e = this, t = [], i = arguments.length; i--;) t[i] = arguments[i];
			var n = t[0],
				s = t[1],
				a = t[2],
				r = t[3];
			if ("function" == typeof t[1]) {
				var o;
				o = t, n = o[0], a = o[1], r = o[2], s = void 0
			}
			r || (r = !1);
			for (var l = n.split(" "), c = 0; c < l.length; c += 1) for (var d = 0; d < this.length; d += 1) {
				var u = e[d];
				if (s) {
					if (u.dom7LiveListeners) for (var h = 0; h < u.dom7LiveListeners.length; h += 1) a ? u.dom7LiveListeners[h].listener === a && u.removeEventListener(l[c], u.dom7LiveListeners[h].proxyListener, r) : u.dom7LiveListeners[h].type === l[c] && u.removeEventListener(l[c], u.dom7LiveListeners[h].proxyListener, r)
				} else if (u.dom7Listeners) for (var p = 0; p < u.dom7Listeners.length; p += 1) a ? u.dom7Listeners[p].listener === a && u.removeEventListener(l[c], u.dom7Listeners[p].proxyListener, r) : u.dom7Listeners[p].type === l[c] && u.removeEventListener(l[c], u.dom7Listeners[p].proxyListener, r)
			}
			return this
		}
		function b() {
			for (var e = this, t = [], i = arguments.length; i--;) t[i] = arguments[i];
			for (var n = t[0].split(" "), s = t[1], a = 0; a < n.length; a += 1) for (var r = 0; r < this.length; r += 1) {
				var o = void 0;
				try {
					o = new window.CustomEvent(n[a], {
						detail: s,
						bubbles: !0,
						cancelable: !0
					})
				} catch (e) {
					o = document.createEvent("Event"), o.initEvent(n[a], !0, !0), o.detail = s
				}
				e[r].dom7EventData = t.filter(function(e, t) {
					return t > 0
				}), e[r].dispatchEvent(o), e[r].dom7EventData = [], delete e[r].dom7EventData
			}
			return this
		}
		function y(e) {
			function t(a) {
				if (a.target === this) for (e.call(this, a), i = 0; i < n.length; i += 1) s.off(n[i], t)
			}
			var i, n = ["webkitTransitionEnd", "transitionend"],
				s = this;
			if (e) for (i = 0; i < n.length; i += 1) s.on(n[i], t);
			return this
		}
		function w(e) {
			if (this.length > 0) {
				if (e) {
					var t = this.styles();
					return this[0].offsetWidth + parseFloat(t.getPropertyValue("margin-right")) + parseFloat(t.getPropertyValue("margin-left"))
				}
				return this[0].offsetWidth
			}
			return null
		}
		function x(e) {
			if (this.length > 0) {
				if (e) {
					var t = this.styles();
					return this[0].offsetHeight + parseFloat(t.getPropertyValue("margin-top")) + parseFloat(t.getPropertyValue("margin-bottom"))
				}
				return this[0].offsetHeight
			}
			return null
		}
		function S() {
			if (this.length > 0) {
				var e = this[0],
					t = e.getBoundingClientRect(),
					i = document.body,
					n = e.clientTop || i.clientTop || 0,
					s = e.clientLeft || i.clientLeft || 0,
					a = e === window ? window.scrollY : e.scrollTop,
					r = e === window ? window.scrollX : e.scrollLeft;
				return {
					top: t.top + a - n,
					left: t.left + r - s
				}
			}
			return null
		}
		function T() {
			return this[0] ? window.getComputedStyle(this[0], null) : {}
		}
		function E(e, t) {
			var i, n = this;
			if (1 === arguments.length) {
				if ("string" != typeof e) {
					for (i = 0; i < this.length; i += 1) for (var s in e) n[i].style[s] = e[s];
					return this
				}
				if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(e)
			}
			if (2 === arguments.length && "string" == typeof e) {
				for (i = 0; i < this.length; i += 1) n[i].style[e] = t;
				return this
			}
			return this
		}
		function C(e) {
			var t = this;
			if (!e) return this;
			for (var i = 0; i < this.length; i += 1) if (!1 === e.call(t[i], i, t[i])) return t;
			return this
		}
		function k(e) {
			var t = this;
			if (void 0 === e) return this[0] ? this[0].innerHTML : void 0;
			for (var i = 0; i < this.length; i += 1) t[i].innerHTML = e;
			return this
		}
		function P(e) {
			var t = this;
			if (void 0 === e) return this[0] ? this[0].textContent.trim() : null;
			for (var i = 0; i < this.length; i += 1) t[i].textContent = e;
			return this
		}
		function z(t) {
			var i, n, s = this[0];
			if (!s || void 0 === t) return !1;
			if ("string" == typeof t) {
				if (s.matches) return s.matches(t);
				if (s.webkitMatchesSelector) return s.webkitMatchesSelector(t);
				if (s.msMatchesSelector) return s.msMatchesSelector(t);
				for (i = e(t), n = 0; n < i.length; n += 1) if (i[n] === s) return !0;
				return !1
			}
			if (t === document) return s === document;
			if (t === window) return s === window;
			if (t.nodeType || t instanceof U) {
				for (i = t.nodeType ? [t] : t, n = 0; n < i.length; n += 1) if (i[n] === s) return !0;
				return !1
			}
			return !1
		}
		function M() {
			var e, t = this[0];
			if (t) {
				for (e = 0; null !== (t = t.previousSibling);) 1 === t.nodeType && (e += 1);
				return e
			}
		}
		function _(e) {
			if (void 0 === e) return this;
			var t, i = this.length;
			return e > i - 1 ? new U([]) : e < 0 ? (t = i + e, new U(t < 0 ? [] : [this[t]])) : new U([this[e]])
		}
		function I() {
			for (var e = this, t = [], i = arguments.length; i--;) t[i] = arguments[i];
			for (var n, s = 0; s < t.length; s += 1) {
				n = t[s];
				for (var a = 0; a < this.length; a += 1) if ("string" == typeof n) {
					var r = document.createElement("div");
					for (r.innerHTML = n; r.firstChild;) e[a].appendChild(r.firstChild)
				} else if (n instanceof U) for (var o = 0; o < n.length; o += 1) e[a].appendChild(n[o]);
				else e[a].appendChild(n)
			}
			return this
		}
		function D(e) {
			var t, i, n = this;
			for (t = 0; t < this.length; t += 1) if ("string" == typeof e) {
				var s = document.createElement("div");
				for (s.innerHTML = e, i = s.childNodes.length - 1; i >= 0; i -= 1) n[t].insertBefore(s.childNodes[i], n[t].childNodes[0])
			} else if (e instanceof U) for (i = 0; i < e.length; i += 1) n[t].insertBefore(e[i], n[t].childNodes[0]);
			else n[t].insertBefore(e, n[t].childNodes[0]);
			return this
		}
		function L(t) {
			return new U(this.length > 0 ? t ? this[0].nextElementSibling && e(this[0].nextElementSibling).is(t) ? [this[0].nextElementSibling] : [] : this[0].nextElementSibling ? [this[0].nextElementSibling] : [] : [])
		}
		function $(t) {
			var i = [],
				n = this[0];
			if (!n) return new U([]);
			for (; n.nextElementSibling;) {
				var s = n.nextElementSibling;
				t ? e(s).is(t) && i.push(s) : i.push(s), n = s
			}
			return new U(i)
		}
		function A(t) {
			if (this.length > 0) {
				var i = this[0];
				return new U(t ? i.previousElementSibling && e(i.previousElementSibling).is(t) ? [i.previousElementSibling] : [] : i.previousElementSibling ? [i.previousElementSibling] : [])
			}
			return new U([])
		}
		function X(t) {
			var i = [],
				n = this[0];
			if (!n) return new U([]);
			for (; n.previousElementSibling;) {
				var s = n.previousElementSibling;
				t ? e(s).is(t) && i.push(s) : i.push(s), n = s
			}
			return new U(i)
		}
		function Y(i) {
			for (var n = this, s = [], a = 0; a < this.length; a += 1) null !== n[a].parentNode && (i ? e(n[a].parentNode).is(i) && s.push(n[a].parentNode) : s.push(n[a].parentNode));
			return e(t(s))
		}
		function O(i) {
			for (var n = this, s = [], a = 0; a < this.length; a += 1) for (var r = n[a].parentNode; r;) i ? e(r).is(i) && s.push(r) : s.push(r), r = r.parentNode;
			return e(t(s))
		}
		function H(e) {
			var t = this;
			return void 0 === e ? new U([]) : (t.is(e) || (t = t.parents(e).eq(0)), t)
		}
		function N(e) {
			for (var t = this, i = [], n = 0; n < this.length; n += 1) for (var s = t[n].querySelectorAll(e), a = 0; a < s.length; a += 1) i.push(s[a]);
			return new U(i)
		}
		function B(i) {
			for (var n = this, s = [], a = 0; a < this.length; a += 1) for (var r = n[a].childNodes, o = 0; o < r.length; o += 1) i ? 1 === r[o].nodeType && e(r[o]).is(i) && s.push(r[o]) : 1 === r[o].nodeType && s.push(r[o]);
			return new U(t(s))
		}
		function R() {
			for (var e = this, t = 0; t < this.length; t += 1) e[t].parentNode && e[t].parentNode.removeChild(e[t]);
			return this
		}
		function V() {
			for (var t = [], i = arguments.length; i--;) t[i] = arguments[i];
			var n, s, a = this;
			for (n = 0; n < t.length; n += 1) {
				var r = e(t[n]);
				for (s = 0; s < r.length; s += 1) a[a.length] = r[s], a.length += 1
			}
			return a
		}
		function W() {
			var e = this,
				t = e.params,
				i = e.touchEvents,
				n = e.el,
				s = e.wrapperEl;
			e.onTouchStart = Ne.bind(e), e.onTouchMove = Be.bind(e), e.onTouchEnd = Re.bind(e), e.onClick = We.bind(e);
			var a = "container" === t.touchEventsTarget ? n : s,
				r = !! t.nested;
			if (we.ie) a.addEventListener(i.start, e.onTouchStart, !1), (Q.touch ? a : document).addEventListener(i.move, e.onTouchMove, r), (Q.touch ? a : document).addEventListener(i.end, e.onTouchEnd, !1);
			else {
				if (Q.touch) {
					var o = !("onTouchStart" !== i.start || !Q.passiveListener || !t.passiveListeners) && {
						passive: !0,
						capture: !1
					};
					a.addEventListener(i.start, e.onTouchStart, o), a.addEventListener(i.move, e.onTouchMove, r), a.addEventListener(i.end, e.onTouchEnd, o)
				}(t.simulateTouch && !He.ios && !He.android || t.simulateTouch && !Q.touch && He.ios) && (a.addEventListener("mousedown", e.onTouchStart, !1), document.addEventListener("mousemove", e.onTouchMove, r), document.addEventListener("mouseup", e.onTouchEnd, !1))
			}(t.preventClicks || t.preventClicksPropagation) && a.addEventListener("click", e.onClick, !0), e.on("resize observerUpdate", Ve)
		}
		function j() {
			var e = this,
				t = e.params,
				i = e.touchEvents,
				n = e.el,
				s = e.wrapperEl,
				a = "container" === t.touchEventsTarget ? n : s,
				r = !! t.nested;
			if (we.ie) a.removeEventListener(i.start, e.onTouchStart, !1), (Q.touch ? a : document).removeEventListener(i.move, e.onTouchMove, r), (Q.touch ? a : document).removeEventListener(i.end, e.onTouchEnd, !1);
			else {
				if (Q.touch) {
					var o = !("onTouchStart" !== i.start || !Q.passiveListener || !t.passiveListeners) && {
						passive: !0,
						capture: !1
					};
					a.removeEventListener(i.start, e.onTouchStart, o), a.removeEventListener(i.move, e.onTouchMove, r), a.removeEventListener(i.end, e.onTouchEnd, o)
				}(t.simulateTouch && !He.ios && !He.android || t.simulateTouch && !Q.touch && He.ios) && (a.removeEventListener("mousedown", e.onTouchStart, !1), document.removeEventListener("mousemove", e.onTouchMove, r), document.removeEventListener("mouseup", e.onTouchEnd, !1))
			}(t.preventClicks || t.preventClicksPropagation) && a.removeEventListener("click", e.onClick, !0), e.off("resize observerUpdate", Ve)
		}
		function F() {
			var e = "onwheel" in document;
			if (!e) {
				var t = document.createElement("div");
				t.setAttribute("onwheel", "return;"), e = "function" == typeof t.onwheel
			}
			return !e && document.implementation && document.implementation.hasFeature && !0 !== document.implementation.hasFeature("", "") && (e = document.implementation.hasFeature("Events.wheel", "3.0")), e
		}
		var G;
		G = "undefined" == typeof window ? {
			navigator: {
				userAgent: ""
			},
			location: {},
			history: {},
			addEventListener: function() {},
			removeEventListener: function() {},
			getComputedStyle: function() {
				return {}
			},
			Image: function() {},
			Date: function() {}
		} : window;
		var q = G,
			U = function(e) {
				for (var t = this, i = 0; i < e.length; i += 1) t[i] = e[i];
				return t.length = e.length, this
			};
		e.fn = U.prototype, e.Class = U, e.Dom7 = U;
		var J = ("resize scroll".split(" "), {
			addClass: i,
			removeClass: n,
			hasClass: s,
			toggleClass: a,
			attr: r,
			removeAttr: l,
			data: d,
			transform: h,
			transition: f,
			on: v,
			off: g,
			trigger: b,
			transitionEnd: y,
			outerWidth: w,
			outerHeight: x,
			offset: S,
			css: E,
			each: C,
			html: k,
			text: P,
			is: z,
			index: M,
			eq: _,
			append: I,
			prepend: D,
			next: L,
			nextAll: $,
			prev: A,
			prevAll: X,
			parent: Y,
			parents: O,
			closest: H,
			find: N,
			children: B,
			remove: R,
			add: V,
			styles: T
		});
		(0, p.
	default)(J).forEach(function(t) {
			e.fn[t] = J[t]
		});
		var K = {
			deleteProps: function(e) {
				var t = e;
				(0, p.
			default)(t).forEach(function(e) {
					try {
						t[e] = null
					} catch (e) {}
					try {
						delete t[e]
					} catch (e) {}
				})
			},
			nextTick: function(e, t) {
				return void 0 === t && (t = 0), setTimeout(e, t)
			},
			now: function() {
				return Date.now()
			},
			getTranslate: function(e, t) {
				void 0 === t && (t = "x");
				var i, n, s, a = q.getComputedStyle(e, null);
				return q.WebKitCSSMatrix ? (n = a.transform || a.webkitTransform, n.split(",").length > 6 && (n = n.split(", ").map(function(e) {
					return e.replace(",", ".")
				}).join(", ")), s = new q.WebKitCSSMatrix("none" === n ? "" : n)) : (s = a.MozTransform || a.OTransform || a.MsTransform || a.msTransform || a.transform || a.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,"), i = s.toString().split(",")), "x" === t && (n = q.WebKitCSSMatrix ? s.m41 : 16 === i.length ? parseFloat(i[12]) : parseFloat(i[4])), "y" === t && (n = q.WebKitCSSMatrix ? s.m42 : 16 === i.length ? parseFloat(i[13]) : parseFloat(i[5])), n || 0
			},
			parseUrlQuery: function(e) {
				var t, i, n, s, a = {},
					r = e || q.location.href;
				if ("string" == typeof r && r.length) for (r = r.indexOf("?") > -1 ? r.replace(/\S*\?/, "") : "", i = r.split("&").filter(function(e) {
					return "" !== e
				}), s = i.length, t = 0; t < s; t += 1) n = i[t].replace(/#\S+/g, "").split("="), a[decodeURIComponent(n[0])] = void 0 === n[1] ? void 0 : decodeURIComponent(n[1]) || "";
				return a
			},
			isObject: function(e) {
				return "object" === (void 0 === e ? "undefined" : (0, m.
			default)(e)) && null !== e && e.constructor && e.constructor === Object
			},
			extend: function() {
				for (var e = [], t = arguments.length; t--;) e[t] = arguments[t];
				for (var i = Object(e[0]), n = 1; n < e.length; n += 1) {
					var s = e[n];
					if (void 0 !== s && null !== s) for (var a = (0, p.
				default)(Object(s)), r = 0, o = a.length; r < o; r += 1) {
						var l = a[r],
							c = (0, u.
						default)(s, l);
						void 0 !== c && c.enumerable && (K.isObject(i[l]) && K.isObject(s[l]) ? K.extend(i[l], s[l]) : !K.isObject(i[l]) && K.isObject(s[l]) ? (i[l] = {}, K.extend(i[l], s[l])) : i[l] = s[l])
					}
				}
				return i
			}
		},
			Q = function() {
				return {
					touch: q.Modernizr && !0 === q.Modernizr.touch ||
					function() {
						return !!("ontouchstart" in q || q.DocumentTouch && document instanceof q.DocumentTouch)
					}(),
					transforms3d: q.Modernizr && !0 === q.Modernizr.csstransforms3d ||
					function() {
						var e = document.createElement("div").style;
						return "webkitPerspective" in e || "MozPerspective" in e || "OPerspective" in e || "MsPerspective" in e || "perspective" in e
					}(),
					flexbox: function() {
						for (var e = document.createElement("div").style, t = "alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "), i = 0; i < t.length; i += 1) if (t[i] in e) return !0;
						return !1
					}(),
					observer: function() {
						return "MutationObserver" in q || "WebkitMutationObserver" in q
					}(),
					passiveListener: function() {
						var e = !1;
						try {
							var t = Object.defineProperty({}, "passive", {
								get: function() {
									e = !0
								}
							});
							q.addEventListener("testPassiveListener", null, t)
						} catch (e) {}
						return e
					}(),
					gestures: function() {
						return "ongesturestart" in q
					}()
				}
			}(),
			Z = function(e) {
				void 0 === e && (e = {});
				var t = this;
				t.params = e, t.eventsListeners = {}, t.params && t.params.on && (0, p.
			default)(t.params.on).forEach(function(e) {
					t.on(e, t.params.on[e])
				})
			},
			ee = {
				components: {}
			};
		Z.prototype.on = function(e, t) {
			var i = this;
			return "function" != typeof t ? i : (e.split(" ").forEach(function(e) {
				i.eventsListeners[e] || (i.eventsListeners[e] = []), i.eventsListeners[e].push(t)
			}), i)
		}, Z.prototype.once = function(e, t) {
			function i() {
				for (var s = [], a = arguments.length; a--;) s[a] = arguments[a];
				t.apply(n, s), n.off(e, i)
			}
			var n = this;
			return "function" != typeof t ? n : n.on(e, i)
		}, Z.prototype.off = function(e, t) {
			var i = this;
			return e.split(" ").forEach(function(e) {
				void 0 === t ? i.eventsListeners[e] = [] : i.eventsListeners[e].forEach(function(n, s) {
					n === t && i.eventsListeners[e].splice(s, 1)
				})
			}), i
		}, Z.prototype.emit = function() {
			for (var e = [], t = arguments.length; t--;) e[t] = arguments[t];
			var i, n, s, a = this;
			return "string" == typeof e[0] || Array.isArray(e[0]) ? (i = e[0], n = e.slice(1, e.length), s = a) : (i = e[0].events, n = e[0].data, s = e[0].context || a), (Array.isArray(i) ? i : i.split(" ")).forEach(function(e) {
				if (a.eventsListeners[e]) {
					var t = [];
					a.eventsListeners[e].forEach(function(e) {
						t.push(e)
					}), t.forEach(function(e) {
						e.apply(s, n)
					})
				}
			}), a
		}, Z.prototype.useModulesParams = function(e) {
			var t = this;
			t.modules && (0, p.
		default)(t.modules).forEach(function(i) {
				var n = t.modules[i];
				n.params && K.extend(e, n.params)
			})
		}, Z.prototype.useModules = function(e) {
			void 0 === e && (e = {});
			var t = this;
			t.modules && (0, p.
		default)(t.modules).forEach(function(i) {
				var n = t.modules[i],
					s = e[i] || {};
				n.instance && (0, p.
			default)(n.instance).forEach(function(e) {
					var i = n.instance[e];
					t[e] = "function" == typeof i ? i.bind(t) : i
				}), n.on && t.on && (0, p.
			default)(n.on).forEach(function(e) {
					t.on(e, n.on[e])
				}), n.create && n.create.bind(t)(s)
			})
		}, ee.components.set = function(e) {
			var t = this;
			t.use && t.use(e)
		}, Z.installModule = function(e) {
			for (var t = [], i = arguments.length - 1; i-- > 0;) t[i] = arguments[i + 1];
			var n = this;
			n.prototype.modules || (n.prototype.modules = {});
			var s = e.name || (0, p.
		default)(n.prototype.modules).length + "_" + K.now();
			return n.prototype.modules[s] = e, e.proto && (0, p.
		default)(e.proto).forEach(function(t) {
				n.prototype[t] = e.proto[t]
			}), e.static && (0, p.
		default)(e.static).forEach(function(t) {
				n[t] = e.static[t]
			}), e.install && e.install.apply(n, t), n
		}, Z.use = function(e) {
			for (var t = [], i = arguments.length - 1; i-- > 0;) t[i] = arguments[i + 1];
			var n = this;
			return Array.isArray(e) ? (e.forEach(function(e) {
				return n.installModule(e)
			}), n) : n.installModule.apply(n, [e].concat(t))
		}, (0, c.
	default)(Z, ee);
		var te = function() {
				var e, t, i = this,
					n = i.$el;
				e = void 0 !== i.params.width ? i.params.width : n[0].clientWidth, t = void 0 !== i.params.height ? i.params.height : n[0].clientHeight, 0 === e && i.isHorizontal() || 0 === t && i.isVertical() || (e = e - parseInt(n.css("padding-left"), 10) - parseInt(n.css("padding-right"), 10), t = t - parseInt(n.css("padding-top"), 10) - parseInt(n.css("padding-bottom"), 10), K.extend(i, {
					width: e,
					height: t,
					size: i.isHorizontal() ? e : t
				}))
			},
			ie = function() {
				var e = this,
					t = e.params,
					i = e.$wrapperEl,
					n = e.size,
					s = e.rtl,
					a = e.wrongRTL,
					r = i.children("." + e.params.slideClass),
					o = e.virtual && t.virtual.enabled,
					l = o ? e.virtual.slides.length : r.length,
					c = [],
					d = [],
					u = [],
					h = t.slidesOffsetBefore;
				"function" == typeof h && (h = t.slidesOffsetBefore.call(e));
				var p = t.slidesOffsetAfter;
				"function" == typeof p && (p = t.slidesOffsetAfter.call(e));
				var f = l,
					m = e.snapGrid.length,
					v = e.snapGrid.length,
					g = t.spaceBetween,
					b = -h,
					y = 0,
					w = 0;
				if (void 0 !== n) {
					"string" == typeof g && g.indexOf("%") >= 0 && (g = parseFloat(g.replace("%", "")) / 100 * n), e.virtualSize = -g, s ? r.css({
						marginLeft: "",
						marginTop: ""
					}) : r.css({
						marginRight: "",
						marginBottom: ""
					});
					var x;
					t.slidesPerColumn > 1 && (x = Math.floor(l / t.slidesPerColumn) === l / e.params.slidesPerColumn ? l : Math.ceil(l / t.slidesPerColumn) * t.slidesPerColumn, "auto" !== t.slidesPerView && "row" === t.slidesPerColumnFill && (x = Math.max(x, t.slidesPerView * t.slidesPerColumn)));
					for (var S, T = t.slidesPerColumn, E = x / T, C = E - (t.slidesPerColumn * E - l), k = 0; k < l; k += 1) {
						S = 0;
						var P = r.eq(k);
						if (t.slidesPerColumn > 1) {
							var z = void 0,
								M = void 0,
								_ = void 0;
							"column" === t.slidesPerColumnFill ? (M = Math.floor(k / T), _ = k - M * T, (M > C || M === C && _ === T - 1) && (_ += 1) >= T && (_ = 0, M += 1), z = M + _ * x / T, P.css({
								"-webkit-box-ordinal-group": z,
								"-moz-box-ordinal-group": z,
								"-ms-flex-order": z,
								"-webkit-order": z,
								order: z
							})) : (_ = Math.floor(k / E), M = k - _ * E), P.css("margin-" + (e.isHorizontal() ? "top" : "left"), 0 !== _ && t.spaceBetween && t.spaceBetween + "px").attr("data-swiper-column", M).attr("data-swiper-row", _)
						}
						"none" !== P.css("display") && ("auto" === t.slidesPerView ? (S = e.isHorizontal() ? P.outerWidth(!0) : P.outerHeight(!0), t.roundLengths && (S = Math.floor(S))) : (S = (n - (t.slidesPerView - 1) * g) / t.slidesPerView, t.roundLengths && (S = Math.floor(S)), r[k] && (e.isHorizontal() ? r[k].style.width = S + "px" : r[k].style.height = S + "px")), r[k] && (r[k].swiperSlideSize = S), u.push(S), t.centeredSlides ? (b = b + S / 2 + y / 2 + g, 0 === y && 0 !== k && (b = b - n / 2 - g), 0 === k && (b = b - n / 2 - g), Math.abs(b) < .001 && (b = 0), w % t.slidesPerGroup == 0 && c.push(b), d.push(b)) : (w % t.slidesPerGroup == 0 && c.push(b), d.push(b), b = b + S + g), e.virtualSize += S + g, y = S, w += 1)
					}
					e.virtualSize = Math.max(e.virtualSize, n) + p;
					var I;
					if (s && a && ("slide" === t.effect || "coverflow" === t.effect) && i.css({
						width: e.virtualSize + t.spaceBetween + "px"
					}), Q.flexbox && !t.setWrapperSize || (e.isHorizontal() ? i.css({
						width: e.virtualSize + t.spaceBetween + "px"
					}) : i.css({
						height: e.virtualSize + t.spaceBetween + "px"
					})), t.slidesPerColumn > 1 && (e.virtualSize = (S + t.spaceBetween) * x, e.virtualSize = Math.ceil(e.virtualSize / t.slidesPerColumn) - t.spaceBetween, e.isHorizontal() ? i.css({
						width: e.virtualSize + t.spaceBetween + "px"
					}) : i.css({
						height: e.virtualSize + t.spaceBetween + "px"
					}), t.centeredSlides)) {
						I = [];
						for (var D = 0; D < c.length; D += 1) c[D] < e.virtualSize + c[0] && I.push(c[D]);
						c = I
					}
					if (!t.centeredSlides) {
						I = [];
						for (var L = 0; L < c.length; L += 1) c[L] <= e.virtualSize - n && I.push(c[L]);
						c = I, Math.floor(e.virtualSize - n) - Math.floor(c[c.length - 1]) > 1 && c.push(e.virtualSize - n)
					}
					0 === c.length && (c = [0]), 0 !== t.spaceBetween && (e.isHorizontal() ? s ? r.css({
						marginLeft: g + "px"
					}) : r.css({
						marginRight: g + "px"
					}) : r.css({
						marginBottom: g + "px"
					})), K.extend(e, {
						slides: r,
						snapGrid: c,
						slidesGrid: d,
						slidesSizesGrid: u
					}), l !== f && e.emit("slidesLengthChange"), c.length !== m && e.emit("snapGridLengthChange"), d.length !== v && e.emit("slidesGridLengthChange"), (t.watchSlidesProgress || t.watchSlidesVisibility) && e.updateSlidesOffset()
				}
			},
			ne = function() {
				var e, t = this,
					i = [],
					n = 0;
				if ("auto" !== t.params.slidesPerView && t.params.slidesPerView > 1) for (e = 0; e < Math.ceil(t.params.slidesPerView); e += 1) {
					var s = t.activeIndex + e;
					if (s > t.slides.length) break;
					i.push(t.slides.eq(s)[0])
				} else i.push(t.slides.eq(t.activeIndex)[0]);
				for (e = 0; e < i.length; e += 1) if (void 0 !== i[e]) {
					var a = i[e].offsetHeight;
					n = a > n ? a : n
				}
				n && t.$wrapperEl.css("height", n + "px")
			},
			se = function() {
				for (var e = this, t = e.slides, i = 0; i < t.length; i += 1) t[i].swiperSlideOffset = e.isHorizontal() ? t[i].offsetLeft : t[i].offsetTop
			},
			ae = function(e) {
				void 0 === e && (e = this.translate || 0);
				var t = this,
					i = t.params,
					n = t.slides,
					s = t.rtl;
				if (0 !== n.length) {
					void 0 === n[0].swiperSlideOffset && t.updateSlidesOffset();
					var a = -e;
					s && (a = e), n.removeClass(i.slideVisibleClass);
					for (var r = 0; r < n.length; r += 1) {
						var o = n[r],
							l = (a + (i.centeredSlides ? t.minTranslate() : 0) - o.swiperSlideOffset) / (o.swiperSlideSize + i.spaceBetween);
						if (i.watchSlidesVisibility) {
							var c = -(a - o.swiperSlideOffset),
								d = c + t.slidesSizesGrid[r];
							(c >= 0 && c < t.size || d > 0 && d <= t.size || c <= 0 && d >= t.size) && n.eq(r).addClass(i.slideVisibleClass)
						}
						o.progress = s ? -l : l
					}
				}
			},
			re = function(e) {
				void 0 === e && (e = this.translate || 0);
				var t = this,
					i = t.params,
					n = t.maxTranslate() - t.minTranslate(),
					s = t.progress,
					a = t.isBeginning,
					r = t.isEnd,
					o = a,
					l = r;
				0 === n ? (s = 0, a = !0, r = !0) : (s = (e - t.minTranslate()) / n, a = s <= 0, r = s >= 1), K.extend(t, {
					progress: s,
					isBeginning: a,
					isEnd: r
				}), (i.watchSlidesProgress || i.watchSlidesVisibility) && t.updateSlidesProgress(e), a && !o && t.emit("reachBeginning toEdge"), r && !l && t.emit("reachEnd toEdge"), (o && !a || l && !r) && t.emit("fromEdge"), t.emit("progress", s)
			},
			oe = function() {
				var e = this,
					t = e.slides,
					i = e.params,
					n = e.$wrapperEl,
					s = e.activeIndex,
					a = e.realIndex,
					r = e.virtual && i.virtual.enabled;
				t.removeClass(i.slideActiveClass + " " + i.slideNextClass + " " + i.slidePrevClass + " " + i.slideDuplicateActiveClass + " " + i.slideDuplicateNextClass + " " + i.slideDuplicatePrevClass);
				var o;
				o = r ? e.$wrapperEl.find("." + i.slideClass + '[data-swiper-slide-index="' + s + '"]') : t.eq(s), o.addClass(i.slideActiveClass), i.loop && (o.hasClass(i.slideDuplicateClass) ? n.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + a + '"]').addClass(i.slideDuplicateActiveClass) : n.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + a + '"]').addClass(i.slideDuplicateActiveClass));
				var l = o.nextAll("." + i.slideClass).eq(0).addClass(i.slideNextClass);
				i.loop && 0 === l.length && (l = t.eq(0), l.addClass(i.slideNextClass));
				var c = o.prevAll("." + i.slideClass).eq(0).addClass(i.slidePrevClass);
				i.loop && 0 === c.length && (c = t.eq(-1), c.addClass(i.slidePrevClass)), i.loop && (l.hasClass(i.slideDuplicateClass) ? n.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + l.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicateNextClass) : n.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + l.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicateNextClass), c.hasClass(i.slideDuplicateClass) ? n.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + c.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicatePrevClass) : n.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + c.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicatePrevClass))
			},
			le = function(e) {
				var t, i = this,
					n = i.rtl ? i.translate : -i.translate,
					s = i.slidesGrid,
					a = i.snapGrid,
					r = i.params,
					o = i.activeIndex,
					l = i.realIndex,
					c = e;
				if (void 0 === c) {
					for (var d = 0; d < s.length; d += 1) void 0 !== s[d + 1] ? n >= s[d] && n < s[d + 1] - (s[d + 1] - s[d]) / 2 ? c = d : n >= s[d] && n < s[d + 1] && (c = d + 1) : n >= s[d] && (c = d);
					r.normalizeSlideIndex && (c < 0 || void 0 === c) && (c = 0)
				}
				if (t = Math.floor(c / r.slidesPerGroup), t >= a.length && (t = a.length - 1), c !== o) {
					var u = parseInt(i.slides.eq(c).attr("data-swiper-slide-index") || c, 10);
					K.extend(i, {
						snapIndex: t,
						realIndex: u,
						previousIndex: o,
						activeIndex: c
					}), i.emit("activeIndexChange"), i.emit("snapIndexChange"), l !== u && i.emit("realIndexChange"), i.emit("slideChange")
				}
			},
			ce = function(t) {
				var i = this,
					n = i.params,
					s = e(t.target).closest("." + n.slideClass)[0],
					a = !1;
				if (s) for (var r = 0; r < i.slides.length; r += 1) i.slides[r] === s && (a = !0);
				if (!s || !a) return i.clickedSlide = void 0, void(i.clickedIndex = void 0);
				i.clickedSlide = s, i.virtual && i.params.virtual.enabled ? i.clickedIndex = parseInt(e(s).attr("data-swiper-slide-index"), 10) : i.clickedIndex = e(s).index(), n.slideToClickedSlide && void 0 !== i.clickedIndex && i.clickedIndex !== i.activeIndex && i.slideToClickedSlide()
			},
			de = {
				updateSize: te,
				updateSlides: ie,
				updateAutoHeight: ne,
				updateSlidesOffset: se,
				updateSlidesProgress: ae,
				updateProgress: re,
				updateSlidesClasses: oe,
				updateActiveIndex: le,
				updateClickedSlide: ce
			},
			ue = function(e) {
				void 0 === e && (e = this.isHorizontal() ? "x" : "y");
				var t = this,
					i = t.params,
					n = t.rtl,
					s = t.translate,
					a = t.$wrapperEl;
				if (i.virtualTranslate) return n ? -s : s;
				var r = K.getTranslate(a[0], e);
				return n && (r = -r), r || 0
			},
			he = function(e, t) {
				var i = this,
					n = i.rtl,
					s = i.params,
					a = i.$wrapperEl,
					r = i.progress,
					o = 0,
					l = 0;
				i.isHorizontal() ? o = n ? -e : e : l = e, s.roundLengths && (o = Math.floor(o), l = Math.floor(l)), s.virtualTranslate || (Q.transforms3d ? a.transform("translate3d(" + o + "px, " + l + "px, 0px)") : a.transform("translate(" + o + "px, " + l + "px)")), i.translate = i.isHorizontal() ? o : l;
				var c, d = i.maxTranslate() - i.minTranslate();
				c = 0 === d ? 0 : (e - i.minTranslate()) / d, c !== r && i.updateProgress(e), i.emit("setTranslate", i.translate, t)
			},
			pe = function() {
				return -this.snapGrid[0]
			},
			fe = function() {
				return -this.snapGrid[this.snapGrid.length - 1]
			},
			me = {
				getTranslate: ue,
				setTranslate: he,
				minTranslate: pe,
				maxTranslate: fe
			},
			ve = function(e, t) {
				var i = this;
				i.$wrapperEl.transition(e), i.emit("setTransition", e, t)
			},
			ge = function(e) {
				void 0 === e && (e = !0);
				var t = this,
					i = t.activeIndex,
					n = t.params,
					s = t.previousIndex;
				n.autoHeight && t.updateAutoHeight(), t.emit("transitionStart"), e && i !== s && (t.emit("slideChangeTransitionStart"), i > s ? t.emit("slideNextTransitionStart") : t.emit("slidePrevTransitionStart"))
			},
			be = function(e) {
				void 0 === e && (e = !0);
				var t = this,
					i = t.activeIndex,
					n = t.previousIndex;
				t.animating = !1, t.setTransition(0), t.emit("transitionEnd"), e && i !== n && (t.emit("slideChangeTransitionEnd"), i > n ? t.emit("slideNextTransitionEnd") : t.emit("slidePrevTransitionEnd"))
			},
			ye = {
				setTransition: ve,
				transitionStart: ge,
				transitionEnd: be
			},
			we = function() {
				return {
					isSafari: function() {
						var e = q.navigator.userAgent.toLowerCase();
						return e.indexOf("safari") >= 0 && e.indexOf("chrome") < 0 && e.indexOf("android") < 0
					}(),
					isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(q.navigator.userAgent),
					ie: q.navigator.pointerEnabled || q.navigator.msPointerEnabled,
					ieTouch: q.navigator.msPointerEnabled && q.navigator.msMaxTouchPoints > 1 || q.navigator.pointerEnabled && q.navigator.maxTouchPoints > 1,
					lteIE9: function() {
						var e = document.createElement("div");
						return e.innerHTML = "\x3c!--[if lte IE 9]><i></i><![endif]--\x3e", 1 === e.getElementsByTagName("i").length
					}()
				}
			}(),
			xe = function(e, t, i, n) {
				void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === i && (i = !0);
				var s = this,
					a = e;
				a < 0 && (a = 0);
				var r = s.params,
					o = s.snapGrid,
					l = s.slidesGrid,
					c = s.previousIndex,
					d = s.activeIndex,
					u = s.rtl,
					h = s.$wrapperEl,
					p = Math.floor(a / r.slidesPerGroup);
				p >= o.length && (p = o.length - 1), (d || r.initialSlide || 0) === (c || 0) && i && s.emit("beforeSlideChangeStart");
				var f = -o[p];
				if (s.updateProgress(f), r.normalizeSlideIndex) for (var m = 0; m < l.length; m += 1) - Math.floor(100 * f) >= Math.floor(100 * l[m]) && (a = m);
				return !(!s.allowSlideNext && f < s.translate && f < s.minTranslate()) && (!(!s.allowSlidePrev && f > s.translate && f > s.maxTranslate() && (d || 0) !== a) && (s.updateActiveIndex(a), u && -f === s.translate || !u && f === s.translate ? (r.autoHeight && s.updateAutoHeight(), s.updateSlidesClasses(), "slide" !== r.effect && s.setTranslate(f), !1) : (s.updateSlidesClasses(), s.emit("beforeTransitionStart", t, n), s.transitionStart(i), 0 === t || we.lteIE9 ? (s.setTransition(0), s.setTranslate(f), s.transitionEnd(i)) : (s.setTransition(t), s.setTranslate(f), s.animating || (s.animating = !0, h.transitionEnd(function() {
					s && s.transitionEnd(i)
				}))), !0)))
			},
			Se = function(e, t, i) {
				void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
				var n = this,
					s = n.params,
					a = n.animating;
				return s.loop ? !a && (n.loopFix(), n._clientLeft = n.$wrapperEl[0].clientLeft, n.slideTo(n.activeIndex + s.slidesPerGroup, e, t, i)) : n.slideTo(n.activeIndex + s.slidesPerGroup, e, t, i)
			},
			Te = function(e, t, i) {
				void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
				var n = this,
					s = n.params,
					a = n.animating;
				return s.loop ? !a && (n.loopFix(), n._clientLeft = n.$wrapperEl[0].clientLeft, n.slideTo(n.activeIndex - 1, e, t, i)) : n.slideTo(n.activeIndex - 1, e, t, i)
			},
			Ee = function(e, t, i) {
				void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
				var n = this;
				return n.slideTo(n.activeIndex, e, t, i)
			},
			Ce = function() {
				var t, i = this,
					n = i.params,
					s = i.$wrapperEl,
					a = "auto" === n.slidesPerView ? i.slidesPerViewDynamic() : n.slidesPerView,
					r = i.clickedIndex;
				if (n.loop) {
					if (i.animating) return;
					t = parseInt(e(i.clickedSlide).attr("data-swiper-slide-index"), 10), n.centeredSlides ? r < i.loopedSlides - a / 2 || r > i.slides.length - i.loopedSlides + a / 2 ? (i.loopFix(), r = s.children("." + n.slideClass + '[data-swiper-slide-index="' + t + '"]:not(.' + n.slideDuplicateClass + ")").eq(0).index(), K.nextTick(function() {
						i.slideTo(r)
					})) : i.slideTo(r) : r > i.slides.length - a ? (i.loopFix(), r = s.children("." + n.slideClass + '[data-swiper-slide-index="' + t + '"]:not(.' + n.slideDuplicateClass + ")").eq(0).index(), K.nextTick(function() {
						i.slideTo(r)
					})) : i.slideTo(r)
				} else i.slideTo(r)
			},
			ke = {
				slideTo: xe,
				slideNext: Se,
				slidePrev: Te,
				slideReset: Ee,
				slideToClickedSlide: Ce
			},
			Pe = function() {
				var t = this,
					i = t.params,
					n = t.$wrapperEl;
				n.children("." + i.slideClass + "." + i.slideDuplicateClass).remove();
				var s = n.children("." + i.slideClass);
				if (i.loopFillGroupWithBlank) {
					var a = i.slidesPerGroup - s.length % i.slidesPerGroup;
					if (a !== i.slidesPerGroup) {
						for (var r = 0; r < a; r += 1) {
							var o = e(document.createElement("div")).addClass(i.slideClass + " " + i.slideBlankClass);
							n.append(o)
						}
						s = n.children("." + i.slideClass)
					}
				}
				"auto" !== i.slidesPerView || i.loopedSlides || (i.loopedSlides = s.length), t.loopedSlides = parseInt(i.loopedSlides || i.slidesPerView, 10), t.loopedSlides += i.loopAdditionalSlides, t.loopedSlides > s.length && (t.loopedSlides = s.length);
				var l = [],
					c = [];
				s.each(function(i, n) {
					var a = e(n);
					i < t.loopedSlides && c.push(n), i < s.length && i >= s.length - t.loopedSlides && l.push(n), a.attr("data-swiper-slide-index", i)
				});
				for (var d = 0; d < c.length; d += 1) n.append(e(c[d].cloneNode(!0)).addClass(i.slideDuplicateClass));
				for (var u = l.length - 1; u >= 0; u -= 1) n.prepend(e(l[u].cloneNode(!0)).addClass(i.slideDuplicateClass))
			},
			ze = function() {
				var e, t = this,
					i = t.params,
					n = t.activeIndex,
					s = t.slides,
					a = t.loopedSlides,
					r = t.allowSlidePrev,
					o = t.allowSlideNext;
				t.allowSlidePrev = !0, t.allowSlideNext = !0, n < a ? (e = s.length - 3 * a + n, e += a, t.slideTo(e, 0, !1, !0)) : ("auto" === i.slidesPerView && n >= 2 * a || n > s.length - 2 * i.slidesPerView) && (e = -s.length + n + a, e += a, t.slideTo(e, 0, !1, !0)), t.allowSlidePrev = r, t.allowSlideNext = o
			},
			Me = function() {
				var e = this,
					t = e.$wrapperEl,
					i = e.params,
					n = e.slides;
				t.children("." + i.slideClass + "." + i.slideDuplicateClass).remove(), n.removeAttr("data-swiper-slide-index")
			},
			_e = {
				loopCreate: Pe,
				loopFix: ze,
				loopDestroy: Me
			},
			Ie = function(e) {
				var t = this;
				if (!Q.touch && t.params.simulateTouch) {
					var i = t.el;
					i.style.cursor = "move", i.style.cursor = e ? "-webkit-grabbing" : "-webkit-grab", i.style.cursor = e ? "-moz-grabbin" : "-moz-grab", i.style.cursor = e ? "grabbing" : "grab"
				}
			},
			De = function() {
				var e = this;
				Q.touch || (e.el.style.cursor = "")
			},
			Le = {
				setGrabCursor: Ie,
				unsetGrabCursor: De
			},
			$e = function(e) {
				var t = this,
					i = t.$wrapperEl,
					n = t.params;
				if (n.loop && t.loopDestroy(), "object" === (void 0 === e ? "undefined" : (0, m.
			default)(e)) && "length" in e) for (var s = 0; s < e.length; s += 1) e[s] && i.append(e[s]);
				else i.append(e);
				n.loop && t.loopCreate(), n.observer && Q.observer || t.update()
			},
			Ae = function(e) {
				var t = this,
					i = t.params,
					n = t.$wrapperEl,
					s = t.activeIndex;
				i.loop && t.loopDestroy();
				var a = s + 1;
				if ("object" === (void 0 === e ? "undefined" : (0, m.
			default)(e)) && "length" in e) {
					for (var r = 0; r < e.length; r += 1) e[r] && n.prepend(e[r]);
					a = s + e.length
				} else n.prepend(e);
				i.loop && t.loopCreate(), i.observer && Q.observer || t.update(), t.slideTo(a, 0, !1)
			},
			Xe = function(e) {
				var t = this,
					i = t.params,
					n = t.$wrapperEl,
					s = t.activeIndex;
				i.loop && (t.loopDestroy(), t.slides = n.children("." + i.slideClass));
				var a, r = s;
				if ("object" === (void 0 === e ? "undefined" : (0, m.
			default)(e)) && "length" in e) {
					for (var o = 0; o < e.length; o += 1) a = e[o], t.slides[a] && t.slides.eq(a).remove(), a < r && (r -= 1);
					r = Math.max(r, 0)
				} else a = e, t.slides[a] && t.slides.eq(a).remove(), a < r && (r -= 1), r = Math.max(r, 0);
				i.loop && t.loopCreate(), i.observer && Q.observer || t.update(), i.loop ? t.slideTo(r + t.loopedSlides, 0, !1) : t.slideTo(r, 0, !1)
			},
			Ye = function() {
				for (var e = this, t = [], i = 0; i < e.slides.length; i += 1) t.push(i);
				e.removeSlide(t)
			},
			Oe = {
				appendSlide: $e,
				prependSlide: Ae,
				removeSlide: Xe,
				removeAllSlides: Ye
			},
			He = function() {
				var e = q.navigator.userAgent,
					t = {
						ios: !1,
						android: !1,
						androidChrome: !1,
						desktop: !1,
						windows: !1,
						iphone: !1,
						ipod: !1,
						ipad: !1,
						cordova: q.cordova || q.phonegap,
						phonegap: q.cordova || q.phonegap
					},
					i = e.match(/(Windows Phone);?[\s\/]+([\d.]+)?/),
					n = e.match(/(Android);?[\s\/]+([\d.]+)?/),
					s = e.match(/(iPad).*OS\s([\d_]+)/),
					a = e.match(/(iPod)(.*OS\s([\d_]+))?/),
					r = !s && e.match(/(iPhone\sOS|iOS)\s([\d_]+)/);
				if (i && (t.os = "windows", t.osVersion = i[2], t.windows = !0), n && !i && (t.os = "android", t.osVersion = n[2], t.android = !0, t.androidChrome = e.toLowerCase().indexOf("chrome") >= 0), (s || r || a) && (t.os = "ios", t.ios = !0), r && !a && (t.osVersion = r[2].replace(/_/g, "."), t.iphone = !0), s && (t.osVersion = s[2].replace(/_/g, "."), t.ipad = !0), a && (t.osVersion = a[3] ? a[3].replace(/_/g, ".") : null, t.iphone = !0), t.ios && t.osVersion && e.indexOf("Version/") >= 0 && "10" === t.osVersion.split(".")[0] && (t.osVersion = e.toLowerCase().split("version/")[1].split(" ")[0]), t.desktop = !(t.os || t.android || t.webView), t.webView = (r || s || a) && e.match(/.*AppleWebKit(?!.*Safari)/i), t.os && "ios" === t.os) {
					var o = t.osVersion.split("."),
						l = document.querySelector('meta[name="viewport"]');
					t.minimalUi = !t.webView && (a || r) && (1 * o[0] == 7 ? 1 * o[1] >= 1 : 1 * o[0] > 7) && l && l.getAttribute("content").indexOf("minimal-ui") >= 0
				}
				return t.pixelRatio = q.devicePixelRatio || 1, t
			}(),
			Ne = function(t) {
				var i = this,
					n = i.touchEventsData,
					s = i.params,
					a = i.touches,
					r = t;
				if (r.originalEvent && (r = r.originalEvent), n.isTouchEvent = "touchstart" === r.type, n.isTouchEvent || !("which" in r) || 3 !== r.which) {
					if (s.noSwiping && e(r).closest("." + s.noSwipingClass)[0]) return void(i.allowClick = !0);
					if (!s.swipeHandler || e(r).closest(s.swipeHandler)[0]) {
						a.currentX = "touchstart" === r.type ? r.targetTouches[0].pageX : r.pageX, a.currentY = "touchstart" === r.type ? r.targetTouches[0].pageY : r.pageY;
						var o = a.currentX,
							l = a.currentY;
						if (!(He.ios && s.iOSEdgeSwipeDetection && o <= s.iOSEdgeSwipeThreshold)) {
							if (K.extend(n, {
								isTouched: !0,
								isMoved: !1,
								allowTouchCallbacks: !0,
								isScrolling: void 0,
								startMoving: void 0
							}), a.startX = o, a.startY = l, n.touchStartTime = K.now(), i.allowClick = !0, i.updateSize(), i.swipeDirection = void 0, s.threshold > 0 && (n.allowThresholdMove = !1), "touchstart" !== r.type) {
								var c = !0;
								e(r.target).is(n.formElements) && (c = !1), document.activeElement && e(document.activeElement).is(n.formElements) && document.activeElement.blur(), c && r.preventDefault()
							}
							i.emit("touchStart", r)
						}
					}
				}
			},
			Be = function(t) {
				var i = this,
					n = i.touchEventsData,
					s = i.params,
					a = i.touches,
					r = i.rtl,
					o = t;
				if (o.originalEvent && (o = o.originalEvent), !n.isTouchEvent || "mousemove" !== o.type) {
					var l = "touchmove" === o.type ? o.targetTouches[0].pageX : o.pageX,
						c = "touchmove" === o.type ? o.targetTouches[0].pageY : o.pageY;
					if (o.preventedByNestedSwiper) return a.startX = l, void(a.startY = c);
					if (!i.allowTouchMove) return i.allowClick = !1, void(n.isTouched && (K.extend(a, {
						startX: l,
						startY: c,
						currentX: l,
						currentY: c
					}), n.touchStartTime = K.now()));
					if (n.isTouchEvent && s.touchReleaseOnEdges && !s.loop) if (i.isVertical()) {
						if (a.currentY < a.startY && i.translate <= i.maxTranslate() || a.currentY > a.startY && i.translate >= i.minTranslate()) return
					} else if (a.currentX < a.startX && i.translate <= i.maxTranslate() || a.currentX > a.startX && i.translate >= i.minTranslate()) return;
					if (n.isTouchEvent && document.activeElement && o.target === document.activeElement && e(o.target).is(n.formElements)) return n.isMoved = !0, void(i.allowClick = !1);
					if (n.allowTouchCallbacks && i.emit("touchMove", o), !(o.targetTouches && o.targetTouches.length > 1)) {
						if (a.currentX = "touchmove" === o.type ? o.targetTouches[0].pageX : o.pageX, a.currentY = "touchmove" === o.type ? o.targetTouches[0].pageY : o.pageY, void 0 === n.isScrolling) {
							var d;
							i.isHorizontal() && a.currentY === a.startY || i.isVertical() && a.currentX === a.startX ? n.isScrolling = !1 : (d = 180 * Math.atan2(Math.abs(a.currentY - a.startY), Math.abs(a.currentX - a.startX)) / Math.PI, n.isScrolling = i.isHorizontal() ? d > s.touchAngle : 90 - d > s.touchAngle)
						}
						if (n.isScrolling && i.emit("touchMoveOpposite", o), "undefined" == typeof startMoving && (a.currentX === a.startX && a.currentY === a.startY || (n.startMoving = !0)), n.isTouched) {
							if (n.isScrolling) return void(n.isTouched = !1);
							if (n.startMoving) {
								i.allowClick = !1, o.preventDefault(), s.touchMoveStopPropagation && !s.nested && o.stopPropagation(), n.isMoved || (s.loop && i.loopFix(), n.startTranslate = i.getTranslate(), i.setTransition(0), i.animating && i.$wrapperEl.trigger("webkitTransitionEnd transitionend"), n.allowMomentumBounce = !1, !s.grabCursor || !0 !== i.allowSlideNext && !0 !== i.allowSlidePrev || i.setGrabCursor(!0), i.emit("sliderFirstMove", o)), i.emit("sliderMove", o), n.isMoved = !0;
								var u = i.isHorizontal() ? a.currentX - a.startX : a.currentY - a.startY;
								a.diff = u, u *= s.touchRatio, r && (u = -u), i.swipeDirection = u > 0 ? "prev" : "next", n.currentTranslate = u + n.startTranslate;
								var h = !0,
									p = s.resistanceRatio;
								if (s.touchReleaseOnEdges && (p = 0), u > 0 && n.currentTranslate > i.minTranslate() ? (h = !1, s.resistance && (n.currentTranslate = i.minTranslate() - 1 + Math.pow(-i.minTranslate() + n.startTranslate + u, p))) : u < 0 && n.currentTranslate < i.maxTranslate() && (h = !1, s.resistance && (n.currentTranslate = i.maxTranslate() + 1 - Math.pow(i.maxTranslate() - n.startTranslate - u, p))), h && (o.preventedByNestedSwiper = !0), !i.allowSlideNext && "next" === i.swipeDirection && n.currentTranslate < n.startTranslate && (n.currentTranslate = n.startTranslate), !i.allowSlidePrev && "prev" === i.swipeDirection && n.currentTranslate > n.startTranslate && (n.currentTranslate = n.startTranslate), s.threshold > 0) {
									if (!(Math.abs(u) > s.threshold || n.allowThresholdMove)) return void(n.currentTranslate = n.startTranslate);
									if (!n.allowThresholdMove) return n.allowThresholdMove = !0, a.startX = a.currentX, a.startY = a.currentY, n.currentTranslate = n.startTranslate, void(a.diff = i.isHorizontal() ? a.currentX - a.startX : a.currentY - a.startY)
								}
								s.followFinger && ((s.freeMode || s.watchSlidesProgress || s.watchSlidesVisibility) && (i.updateActiveIndex(), i.updateSlidesClasses()), s.freeMode && (0 === n.velocities.length && n.velocities.push({
									position: a[i.isHorizontal() ? "startX" : "startY"],
									time: n.touchStartTime
								}), n.velocities.push({
									position: a[i.isHorizontal() ? "currentX" : "currentY"],
									time: K.now()
								})), i.updateProgress(n.currentTranslate), i.setTranslate(n.currentTranslate))
							}
						}
					}
				}
			},
			Re = function(e) {
				var t = this,
					i = t.touchEventsData,
					n = t.params,
					s = t.touches,
					a = t.rtl,
					r = t.$wrapperEl,
					o = t.slidesGrid,
					l = t.snapGrid,
					c = e;
				if (c.originalEvent && (c = c.originalEvent), i.allowTouchCallbacks && t.emit("touchEnd", c), i.allowTouchCallbacks = !1, i.isTouched) {
					n.grabCursor && i.isMoved && i.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1);
					var d = K.now(),
						u = d - i.touchStartTime;
					if (t.allowClick && (t.updateClickedSlide(c), t.emit("tap", c), u < 300 && d - i.lastClickTime > 300 && (i.clickTimeout && clearTimeout(i.clickTimeout), i.clickTimeout = K.nextTick(function() {
						t && t.emit("click", c)
					}, 300)), u < 300 && d - i.lastClickTime < 300 && (i.clickTimeout && clearTimeout(i.clickTimeout), t.emit("doubleTap", c))), i.lastClickTime = K.now(), K.nextTick(function() {
						t && (t.allowClick = !0)
					}), !i.isTouched || !i.isMoved || !t.swipeDirection || 0 === s.diff || i.currentTranslate === i.startTranslate) return i.isTouched = !1, void(i.isMoved = !1);
					i.isTouched = !1, i.isMoved = !1;
					var h;
					if (h = n.followFinger ? a ? t.translate : -t.translate : -i.currentTranslate, n.freeMode) {
						if (h < -t.minTranslate()) return void t.slideTo(t.activeIndex);
						if (h > -t.maxTranslate()) return void(t.slides.length < l.length ? t.slideTo(l.length - 1) : t.slideTo(t.slides.length - 1));
						if (n.freeModeMomentum) {
							if (i.velocities.length > 1) {
								var p = i.velocities.pop(),
									f = i.velocities.pop(),
									m = p.position - f.position,
									v = p.time - f.time;
								t.velocity = m / v, t.velocity /= 2, Math.abs(t.velocity) < n.freeModeMinimumVelocity && (t.velocity = 0), (v > 150 || K.now() - p.time > 300) && (t.velocity = 0)
							} else t.velocity = 0;
							t.velocity *= n.freeModeMomentumVelocityRatio, i.velocities.length = 0;
							var g = 1e3 * n.freeModeMomentumRatio,
								b = t.velocity * g,
								y = t.translate + b;
							a && (y = -y);
							var w, x = !1,
								S = 20 * Math.abs(t.velocity) * n.freeModeMomentumBounceRatio;
							if (y < t.maxTranslate()) n.freeModeMomentumBounce ? (y + t.maxTranslate() < -S && (y = t.maxTranslate() - S), w = t.maxTranslate(), x = !0, i.allowMomentumBounce = !0) : y = t.maxTranslate();
							else if (y > t.minTranslate()) n.freeModeMomentumBounce ? (y - t.minTranslate() > S && (y = t.minTranslate() + S), w = t.minTranslate(), x = !0, i.allowMomentumBounce = !0) : y = t.minTranslate();
							else if (n.freeModeSticky) {
								for (var T, E = 0; E < l.length; E += 1) if (l[E] > -y) {
									T = E;
									break
								}
								y = Math.abs(l[T] - y) < Math.abs(l[T - 1] - y) || "next" === t.swipeDirection ? l[T] : l[T - 1], a || (y = -y)
							}
							if (0 !== t.velocity) g = a ? Math.abs((-y - t.translate) / t.velocity) : Math.abs((y - t.translate) / t.velocity);
							else if (n.freeModeSticky) return void t.slideReset();
							n.freeModeMomentumBounce && x ? (t.updateProgress(w), t.setTransition(g), t.setTranslate(y), t.transitionStart(), t.animating = !0, r.transitionEnd(function() {
								t && i.allowMomentumBounce && (t.emit("momentumBounce"), t.setTransition(n.speed), t.setTranslate(w), r.transitionEnd(function() {
									t && t.transitionEnd()
								}))
							})) : t.velocity ? (t.updateProgress(y), t.setTransition(g), t.setTranslate(y), t.transitionStart(), t.animating || (t.animating = !0, r.transitionEnd(function() {
								t && t.transitionEnd()
							}))) : t.updateProgress(y), t.updateActiveIndex(), t.updateSlidesClasses()
						}
						return void((!n.freeModeMomentum || u >= n.longSwipesMs) && (t.updateProgress(), t.updateActiveIndex(), t.updateSlidesClasses()))
					}
					for (var C = 0, k = t.slidesSizesGrid[0], P = 0; P < o.length; P += n.slidesPerGroup) void 0 !== o[P + n.slidesPerGroup] ? h >= o[P] && h < o[P + n.slidesPerGroup] && (C = P, k = o[P + n.slidesPerGroup] - o[P]) : h >= o[P] && (C = P, k = o[o.length - 1] - o[o.length - 2]);
					var z = (h - o[C]) / k;
					if (u > n.longSwipesMs) {
						if (!n.longSwipes) return void t.slideTo(t.activeIndex);
						"next" === t.swipeDirection && (z >= n.longSwipesRatio ? t.slideTo(C + n.slidesPerGroup) : t.slideTo(C)), "prev" === t.swipeDirection && (z > 1 - n.longSwipesRatio ? t.slideTo(C + n.slidesPerGroup) : t.slideTo(C))
					} else {
						if (!n.shortSwipes) return void t.slideTo(t.activeIndex);
						"next" === t.swipeDirection && t.slideTo(C + n.slidesPerGroup), "prev" === t.swipeDirection && t.slideTo(C)
					}
				}
			},
			Ve = function() {
				var e = this,
					t = e.params,
					i = e.el,
					n = e.allowSlideNext,
					s = e.allowSlidePrev;
				if (!i || 0 !== i.offsetWidth) {
					if (t.breakpoints && e.setBreakpoint(), e.allowSlideNext = !0, e.allowSlidePrev = !0, e.updateSize(), e.updateSlides(), t.freeMode) {
						var a = Math.min(Math.max(e.translate, e.maxTranslate()), e.minTranslate());
						e.setTranslate(a), e.updateActiveIndex(), e.updateSlidesClasses(), t.autoHeight && e.updateAutoHeight()
					} else e.updateSlidesClasses(), ("auto" === t.slidesPerView || t.slidesPerView > 1) && e.isEnd && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0);
					e.allowSlidePrev = s, e.allowSlideNext = n
				}
			},
			We = function(e) {
				var t = this;
				t.allowClick || (t.params.preventClicks && e.preventDefault(), t.params.preventClicksPropagation && t.animating && (e.stopPropagation(), e.stopImmediatePropagation()))
			},
			je = {
				attachEvents: W,
				detachEvents: j
			},
			Fe = function() {
				var e = this,
					t = e.activeIndex,
					i = e.loopedSlides;
				void 0 === i && (i = 0);
				var n = e.params,
					s = n.breakpoints;
				if (s && (!s || 0 !== (0, p.
			default)(s).length)) {
					var a = e.getBreakpoint(s);
					if (a && e.currentBreakpoint !== a) {
						var r = a in s ? s[a] : e.originalParams,
							o = n.loop && r.slidesPerView !== n.slidesPerView;
						if (K.extend(e.params, r), K.extend(e, {
							allowTouchMove: e.params.allowTouchMove,
							allowSlideNext: e.params.allowSlideNext,
							allowSlidePrev: e.params.allowSlidePrev
						}), e.currentBreakpoint = a, o) {
							var l = t - i;
							e.loopDestroy(), e.loopCreate(), e.updateSlides(), e.slideTo(l + i, 0, !1)
						}
					}
				}
			},
			Ge = function(e) {
				if (e) {
					var t = !1,
						i = [];
					(0, p.
				default)(e).forEach(function(e) {
						i.push(e)
					}), i.sort(function(e, t) {
						return parseInt(e, 10) > parseInt(t, 10)
					});
					for (var n = 0; n < i.length; n += 1) {
						var s = i[n];
						s >= q.innerWidth && !t && (t = s)
					}
					return t || "max"
				}
			},
			qe = {
				setBreakpoint: Fe,
				getBreakpoint: Ge
			},
			Ue = function() {
				var e = this,
					t = e.classNames,
					i = e.params,
					n = e.rtl,
					s = e.$el,
					a = [];
				a.push(i.direction), i.freeMode && a.push("free-mode"), Q.flexbox || a.push("no-flexbox"), i.autoHeight && a.push("autoheight"), n && a.push("rtl"), i.slidesPerColumn > 1 && a.push("multirow"), He.android && a.push("android"), He.ios && a.push("ios"), (q.navigator.pointerEnabled || q.navigator.msPointerEnabled) && a.push("wp8-" + i.direction), a.forEach(function(e) {
					t.push(i.containerModifierClass + e)
				}), s.addClass(t.join(" "))
			},
			Je = function() {
				var e = this,
					t = e.$el,
					i = e.classNames;
				t.removeClass(i.join(" "))
			},
			Ke = {
				addClasses: Ue,
				removeClasses: Je
			},
			Qe = function(e, t, i, n, s, a) {
				function r() {
					a && a()
				}
				var o;
				e.complete && s ? r() : t ? (o = new q.Image, o.onload = r, o.onerror = r, n && (o.sizes = n), i && (o.srcset = i), t && (o.src = t)) : r()
			},
			Ze = function() {
				function e() {
					void 0 !== t && null !== t && t && (void 0 !== t.imagesLoaded && (t.imagesLoaded += 1), t.imagesLoaded === t.imagesToLoad.length && (t.params.updateOnImagesReady && t.update(), t.emit("imagesReady")))
				}
				var t = this;
				t.imagesToLoad = t.$el.find("img");
				for (var i = 0; i < t.imagesToLoad.length; i += 1) {
					var n = t.imagesToLoad[i];
					t.loadImage(n, n.currentSrc || n.getAttribute("src"), n.srcset || n.getAttribute("srcset"), n.sizes || n.getAttribute("sizes"), !0, e)
				}
			},
			et = {
				loadImage: Qe,
				preloadImages: Ze
			},
			tt = {
				init: !0,
				direction: "horizontal",
				touchEventsTarget: "container",
				initialSlide: 0,
				speed: 300,
				iOSEdgeSwipeDetection: !1,
				iOSEdgeSwipeThreshold: 20,
				freeMode: !1,
				freeModeMomentum: !0,
				freeModeMomentumRatio: 1,
				freeModeMomentumBounce: !0,
				freeModeMomentumBounceRatio: 1,
				freeModeMomentumVelocityRatio: 1,
				freeModeSticky: !1,
				freeModeMinimumVelocity: .02,
				autoHeight: !1,
				setWrapperSize: !1,
				virtualTranslate: !1,
				effect: "slide",
				breakpoints: void 0,
				spaceBetween: 0,
				slidesPerView: 1,
				slidesPerColumn: 1,
				slidesPerColumnFill: "column",
				slidesPerGroup: 1,
				centeredSlides: !1,
				slidesOffsetBefore: 0,
				slidesOffsetAfter: 0,
				normalizeSlideIndex: !0,
				roundLengths: !1,
				touchRatio: 1,
				touchAngle: 45,
				simulateTouch: !0,
				shortSwipes: !0,
				longSwipes: !0,
				longSwipesRatio: .5,
				longSwipesMs: 300,
				followFinger: !0,
				allowTouchMove: !0,
				threshold: 0,
				touchMoveStopPropagation: !0,
				touchReleaseOnEdges: !1,
				uniqueNavElements: !0,
				resistance: !0,
				resistanceRatio: .85,
				watchSlidesProgress: !1,
				watchSlidesVisibility: !1,
				grabCursor: !1,
				preventClicks: !0,
				preventClicksPropagation: !0,
				slideToClickedSlide: !1,
				preloadImages: !0,
				updateOnImagesReady: !0,
				loop: !1,
				loopAdditionalSlides: 0,
				loopedSlides: null,
				loopFillGroupWithBlank: !1,
				allowSlidePrev: !0,
				allowSlideNext: !0,
				swipeHandler: null,
				noSwiping: !0,
				noSwipingClass: "swiper-no-swiping",
				passiveListeners: !0,
				containerModifierClass: "swiper-container-",
				slideClass: "swiper-slide",
				slideBlankClass: "swiper-slide-invisible-blank",
				slideActiveClass: "swiper-slide-active",
				slideDuplicateActiveClass: "swiper-slide-duplicate-active",
				slideVisibleClass: "swiper-slide-visible",
				slideDuplicateClass: "swiper-slide-duplicate",
				slideNextClass: "swiper-slide-next",
				slideDuplicateNextClass: "swiper-slide-duplicate-next",
				slidePrevClass: "swiper-slide-prev",
				slideDuplicatePrevClass: "swiper-slide-duplicate-prev",
				wrapperClass: "swiper-wrapper",
				runCallbacksOnInit: !0
			},
			it = {
				update: de,
				translate: me,
				transition: ye,
				slide: ke,
				loop: _e,
				grabCursor: Le,
				manipulation: Oe,
				events: je,
				breakpoints: qe,
				classes: Ke,
				images: et
			},
			nt = {},
			st = function(t) {
				function i() {
					for (var n = [], s = arguments.length; s--;) n[s] = arguments[s];
					var a, r;
					if (1 === n.length && n[0].constructor && n[0].constructor === Object) r = n[0];
					else {
						var o;
						o = n, a = o[0], r = o[1]
					}
					r || (r = {}), r = K.extend({}, r), a && !r.el && (r.el = a), t.call(this, r), (0, p.
				default)(it).forEach(function(e) {
						(0, p.
					default)(it[e]).forEach(function(t) {
							i.prototype[t] || (i.prototype[t] = it[e][t])
						})
					});
					var l = this;
					(0, p.
				default)(l.modules).forEach(function(e) {
						var t = l.modules[e];
						if (t.params) {
							var i = (0, p.
						default)(t.params)[0],
								n = t.params[i];
							if ("object" !== (void 0 === n ? "undefined" : (0, m.
						default)(n))) return;
							if (!(i in r && "enabled" in n)) return;
							!0 === r[i] && (r[i] = {
								enabled: !0
							}), "object" !== (0, m.
						default)(r[i]) || "enabled" in r[i] || (r[i].enabled = !0), r[i] || (r[i] = {
								enabled: !1
							})
						}
					});
					var c = K.extend({}, tt);
					l.useModulesParams(c), l.params = K.extend({}, c, nt, r), l.originalParams = K.extend({}, l.params), l.passedParams = K.extend({}, r);
					var d = e(l.params.el);
					if (a = d[0]) {
						if (d.length > 1) {
							var u = [];
							return d.each(function(e, t) {
								var n = K.extend({}, r, {
									el: t
								});
								u.push(new i(n))
							}), u
						}
						a.swiper = l, d.data("swiper", l);
						var h = d.children("." + l.params.wrapperClass);
						return K.extend(l, {
							$el: d,
							el: a,
							$wrapperEl: h,
							wrapperEl: h[0],
							classNames: [],
							slides: e(),
							slidesGrid: [],
							snapGrid: [],
							slidesSizesGrid: [],
							isHorizontal: function() {
								return "horizontal" === l.params.direction
							},
							isVertical: function() {
								return "vertical" === l.params.direction
							},
							rtl: "horizontal" === l.params.direction && ("rtl" === a.dir.toLowerCase() || "rtl" === d.css("direction")),
							wrongRTL: "-webkit-box" === h.css("display"),
							activeIndex: 0,
							realIndex: 0,
							isBeginning: !0,
							isEnd: !1,
							translate: 0,
							progress: 0,
							velocity: 0,
							animating: !1,
							allowSlideNext: l.params.allowSlideNext,
							allowSlidePrev: l.params.allowSlidePrev,
							touchEvents: function() {
								var e = ["touchstart", "touchmove", "touchend"],
									t = ["mousedown", "mousemove", "mouseup"];
								return q.navigator.pointerEnabled ? t = ["pointerdown", "pointermove", "pointerup"] : q.navigator.msPointerEnabled && (t = ["MSPointerDown", "MsPointerMove", "MsPointerUp"]), {
									start: Q.touch || !l.params.simulateTouch ? e[0] : t[0],
									move: Q.touch || !l.params.simulateTouch ? e[1] : t[1],
									end: Q.touch || !l.params.simulateTouch ? e[2] : t[2]
								}
							}(),
							touchEventsData: {
								isTouched: void 0,
								isMoved: void 0,
								allowTouchCallbacks: void 0,
								touchStartTime: void 0,
								isScrolling: void 0,
								currentTranslate: void 0,
								startTranslate: void 0,
								allowThresholdMove: void 0,
								formElements: "input, select, textarea, button, video",
								lastClickTime: K.now(),
								clickTimeout: void 0,
								velocities: [],
								allowMomentumBounce: void 0,
								isTouchEvent: void 0,
								startMoving: void 0
							},
							allowClick: !0,
							allowTouchMove: l.params.allowTouchMove,
							touches: {
								startX: 0,
								startY: 0,
								currentX: 0,
								currentY: 0,
								diff: 0
							},
							imagesToLoad: [],
							imagesLoaded: 0
						}), l.useModules(), l.params.init && l.init(), l
					}
				}
				t && (i.__proto__ = t), i.prototype = (0, o.
			default)(t && t.prototype), i.prototype.constructor = i;
				var n = {
					extendedDefaults: {},
					defaults: {},
					Class: {},
					$: {}
				};
				return i.prototype.slidesPerViewDynamic = function() {
					var e = this,
						t = e.params,
						i = e.slides,
						n = e.slidesGrid,
						s = e.size,
						a = e.activeIndex,
						r = 1;
					if (t.centeredSlides) {
						for (var o, l = i[a].swiperSlideSize, c = a + 1; c < i.length; c += 1) i[c] && !o && (l += i[c].swiperSlideSize, r += 1, l > s && (o = !0));
						for (var d = a - 1; d >= 0; d -= 1) i[d] && !o && (l += i[d].swiperSlideSize, r += 1, l > s && (o = !0))
					} else for (var u = a + 1; u < i.length; u += 1) n[u] - n[a] < s && (r += 1);
					return r
				}, i.prototype.update = function() {
					function e() {
						i = Math.min(Math.max(t.translate, t.maxTranslate()), t.minTranslate()), t.setTranslate(i), t.updateActiveIndex(), t.updateSlidesClasses()
					}
					var t = this;
					if (t) {
						t.updateSize(), t.updateSlides(), t.updateProgress(), t.updateSlidesClasses();
						var i;
						t.params.freeMode ? (e(), t.params.autoHeight && t.updateAutoHeight()) : (("auto" === t.params.slidesPerView || t.params.slidesPerView > 1) && t.isEnd && !t.params.centeredSlides ? t.slideTo(t.slides.length - 1, 0, !1, !0) : t.slideTo(t.activeIndex, 0, !1, !0)) || e(), t.emit("update")
					}
				}, i.prototype.init = function() {
					var e = this;
					e.initialized || (e.emit("beforeInit"), e.params.breakpoints && e.setBreakpoint(), e.addClasses(), e.params.loop && e.loopCreate(), e.updateSize(), e.updateSlides(), e.params.grabCursor && e.setGrabCursor(), e.params.preloadImages && e.preloadImages(), e.params.loop ? e.slideTo(e.params.initialSlide + e.loopedSlides, 0, e.params.runCallbacksOnInit) : e.slideTo(e.params.initialSlide, 0, e.params.runCallbacksOnInit), e.attachEvents(), e.initialized = !0, e.emit("init"))
				}, i.prototype.destroy = function(e, t) {
					void 0 === e && (e = !0), void 0 === t && (t = !0);
					var i = this,
						n = i.params,
						s = i.$el,
						a = i.$wrapperEl,
						r = i.slides;
					i.emit("beforeDestroy"), i.initialized = !1, i.detachEvents(), n.loop && i.loopDestroy(), t && (i.removeClasses(), s.removeAttr("style"), a.removeAttr("style"), r && r.length && r.removeClass([n.slideVisibleClass, n.slideActiveClass, n.slideNextClass, n.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index").removeAttr("data-swiper-column").removeAttr("data-swiper-row")), i.emit("destroy"), (0, p.
				default)(i.eventsListeners).forEach(function(e) {
						i.off(e)
					}), !1 !== e && (i.$el[0].swiper = null, i.$el.data("swiper", null), K.deleteProps(i), i = null)
				}, i.extendDefaults = function(e) {
					K.extend(nt, e)
				}, n.extendedDefaults.get = function() {
					return nt
				}, n.defaults.get = function() {
					return tt
				}, n.Class.get = function() {
					return t
				}, n.$.get = function() {
					return e
				}, (0, c.
			default)(i, n), i
			}(Z),
			at = {
				name: "device",
				proto: {
					device: He
				},
				static: {
					device: He
				}
			},
			rt = {
				name: "support",
				proto: {
					support: Q
				},
				static: {
					support: Q
				}
			},
			ot = {
				name: "browser",
				proto: {
					browser: we
				},
				static: {
					browser: we
				}
			},
			lt = {
				name: "resize",
				create: function() {
					var e = this;
					K.extend(e, {
						resize: {
							resizeHandler: function() {
								e && e.initialized && (e.emit("beforeResize"), e.emit("resize"))
							},
							orientationChangeHandler: function() {
								e && e.initialized && e.emit("orientationchange")
							}
						}
					})
				},
				on: {
					init: function() {
						var e = this;
						q.addEventListener("resize", e.resize.resizeHandler), q.addEventListener("orientationchange", e.resize.orientationChangeHandler)
					},
					destroy: function() {
						var e = this;
						q.removeEventListener("resize", e.resize.resizeHandler), q.removeEventListener("orientationchange", e.resize.orientationChangeHandler)
					}
				}
			},
			ct = {
				func: q.MutationObserver || q.WebkitMutationObserver,
				attach: function(e, t) {
					void 0 === t && (t = {});
					var i = this,
						n = ct.func,
						s = new n(function(e) {
							e.forEach(function(e) {
								i.emit("observerUpdate", e)
							})
						});
					s.observe(e, {
						attributes: void 0 === t.attributes || t.attributes,
						childList: void 0 === t.childList || t.childList,
						characterData: void 0 === t.characterData || t.characterData
					}), i.observer.observers.push(s)
				},
				init: function() {
					var e = this;
					if (Q.observer && e.params.observer) {
						if (e.params.observeParents) for (var t = e.$el.parents(), i = 0; i < t.length; i += 1) e.observer.attach(t[i]);
						e.observer.attach(e.$el[0], {
							childList: !1
						}), e.observer.attach(e.$wrapperEl[0], {
							attributes: !1
						})
					}
				},
				destroy: function() {
					var e = this;
					e.observer.observers.forEach(function(e) {
						e.disconnect()
					}), e.observer.observers = []
				}
			},
			dt = {
				name: "observer",
				params: {
					observer: !1,
					observeParents: !1
				},
				create: function() {
					var e = this;
					K.extend(e, {
						observer: {
							init: ct.init.bind(e),
							attach: ct.attach.bind(e),
							destroy: ct.destroy.bind(e),
							observers: []
						}
					})
				},
				on: {
					init: function() {
						this.observer.init()
					},
					destroy: function() {
						this.observer.destroy()
					}
				}
			},
			ut = {
				update: function(e) {
					function t() {
						i.updateSlides(), i.updateProgress(), i.updateSlidesClasses(), i.lazy && i.params.lazy.enabled && i.lazy.load()
					}
					var i = this,
						n = i.params,
						s = n.slidesPerView,
						a = n.slidesPerGroup,
						r = n.centeredSlides,
						o = i.virtual,
						l = o.from,
						c = o.to,
						d = o.slides,
						u = o.slidesGrid,
						h = o.renderSlide,
						p = o.offset;
					i.updateActiveIndex();
					var f, m = i.activeIndex || 0;
					f = i.rtl && i.isHorizontal() ? "right" : i.isHorizontal() ? "left" : "top";
					var v, g;
					r ? (v = Math.floor(s / 2) + a, g = Math.floor(s / 2) + a) : (v = s + (a - 1), g = a);
					var b = Math.max((m || 0) - g, 0),
						y = Math.min((m || 0) + v, d.length - 1),
						w = (i.slidesGrid[b] || 0) - (i.slidesGrid[0] || 0);
					if (K.extend(i.virtual, {
						from: b,
						to: y,
						offset: w,
						slidesGrid: i.slidesGrid
					}), l === b && c === y && !e) return i.slidesGrid !== u && w !== p && i.slides.css(f, w + "px"), void i.updateProgress();
					if (i.params.virtual.renderExternal) return i.params.virtual.renderExternal.call(i, {
						offset: w,
						from: b,
						to: y,
						slides: function() {
							for (var e = [], t = b; t <= y; t += 1) e.push(d[t]);
							return e
						}()
					}), void t();
					var x = [],
						S = [];
					if (e) i.$wrapperEl.find("." + i.params.slideClass).remove();
					else for (var T = l; T <= c; T += 1)(T < b || T > y) && i.$wrapperEl.find("." + i.params.slideClass + '[data-swiper-slide-index="' + T + '"]').remove();
					for (var E = 0; E < d.length; E += 1) E >= b && E <= y && (void 0 === c || e ? S.push(E) : (E > c && S.push(E), E < l && x.push(E)));
					S.forEach(function(e) {
						i.$wrapperEl.append(h(d[e], e))
					}), x.sort(function(e, t) {
						return e < t
					}).forEach(function(e) {
						i.$wrapperEl.prepend(h(d[e], e))
					}), i.$wrapperEl.children(".swiper-slide").css(f, w + "px"), t()
				},
				renderSlide: function(t, i) {
					var n = this,
						s = n.params.virtual;
					if (s.cache && n.virtual.cache[i]) return n.virtual.cache[i];
					var a = e(s.renderSlide ? s.renderSlide.call(n, t, i) : '<div class="' + n.params.slideClass + '" data-swiper-slide-index="' + i + '">' + t + "</div>");
					return a.attr("data-swiper-slide-index") || a.attr("data-swiper-slide-index", i), s.cache && (n.virtual.cache[i] = a), a
				},
				appendSlide: function(e) {
					var t = this;
					t.virtual.slides.push(e), t.virtual.update(!0)
				},
				prependSlide: function(e) {
					var t = this;
					if (t.virtual.slides.unshift(e), t.params.virtual.cache) {
						var i = t.virtual.cache,
							n = {};
						(0, p.
					default)(i).forEach(function(e) {
							n[e + 1] = i[e]
						}), t.virtual.cache = n
					}
					t.virtual.update(!0), t.slideNext(0)
				}
			},
			ht = {
				name: "virtual",
				params: {
					virtual: {
						enabled: !1,
						slides: [],
						cache: !0,
						renderSlide: null,
						renderExternal: null
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						virtual: {
							update: ut.update.bind(e),
							appendSlide: ut.appendSlide.bind(e),
							prependSlide: ut.prependSlide.bind(e),
							renderSlide: ut.renderSlide.bind(e),
							slides: e.params.virtual.slides,
							cache: {}
						}
					})
				},
				on: {
					beforeInit: function() {
						var e = this;
						e.params.virtual.enabled && (e.classNames.push(e.params.containerModifierClass + "virtual"), K.extend(e.params, {
							watchSlidesProgress: !0
						}), e.virtual.update())
					},
					setTranslate: function() {
						var e = this;
						e.params.virtual.enabled && e.virtual.update()
					}
				}
			},
			pt = {
				handle: function(e) {
					var t = this,
						i = e;
					i.originalEvent && (i = i.originalEvent);
					var n = i.keyCode || i.charCode;
					if (!t.allowSlideNext && (t.isHorizontal() && 39 === n || t.isVertical() && 40 === n)) return !1;
					if (!t.allowSlidePrev && (t.isHorizontal() && 37 === n || t.isVertical() && 38 === n)) return !1;
					if (!(i.shiftKey || i.altKey || i.ctrlKey || i.metaKey || document.activeElement && document.activeElement.nodeName && ("input" === document.activeElement.nodeName.toLowerCase() || "textarea" === document.activeElement.nodeName.toLowerCase()))) {
						if (37 === n || 39 === n || 38 === n || 40 === n) {
							var s = !1;
							if (t.$el.parents("." + t.params.slideClass).length > 0 && 0 === t.$el.parents("." + t.params.slideActiveClass).length) return;
							var a = {
								left: q.pageXOffset,
								top: q.pageYOffset
							},
								r = q.innerWidth,
								o = q.innerHeight,
								l = t.$el.offset();
							t.rtl && (l.left -= t.$el[0].scrollLeft);
							for (var c = [
								[l.left, l.top],
								[l.left + t.width, l.top],
								[l.left, l.top + t.height],
								[l.left + t.width, l.top + t.height]
							], d = 0; d < c.length; d += 1) {
								var u = c[d];
								u[0] >= a.left && u[0] <= a.left + r && u[1] >= a.top && u[1] <= a.top + o && (s = !0)
							}
							if (!s) return
						}
						t.isHorizontal() ? (37 !== n && 39 !== n || (i.preventDefault ? i.preventDefault() : i.returnValue = !1), (39 === n && !t.rtl || 37 === n && t.rtl) && t.slideNext(), (37 === n && !t.rtl || 39 === n && t.rtl) && t.slidePrev()) : (38 !== n && 40 !== n || (i.preventDefault ? i.preventDefault() : i.returnValue = !1), 40 === n && t.slideNext(), 38 === n && t.slidePrev()), t.emit("keyPress", n)
					}
				},
				enable: function() {
					var t = this;
					t.keyboard.enabled || (e(document).on("keydown", t.keyboard.handle), t.keyboard.enabled = !0)
				},
				disable: function() {
					var t = this;
					t.keyboard.enabled && (e(document).off("keydown", t.keyboard.handle), t.keyboard.enabled = !1)
				}
			},
			ft = {
				name: "keyboard",
				params: {
					keyboard: {
						enabled: !1
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						keyboard: {
							enabled: !1,
							enable: pt.enable.bind(e),
							disable: pt.disable.bind(e),
							handle: pt.handle.bind(e)
						}
					})
				},
				on: {
					init: function() {
						var e = this;
						e.params.keyboard.enabled && e.keyboard.enable()
					},
					destroy: function() {
						var e = this;
						e.keyboard.enabled && e.keyboard.disable()
					}
				}
			},
			mt = {
				lastScrollTime: K.now(),
				event: function() {
					return q.navigator.userAgent.indexOf("firefox") > -1 ? "DOMMouseScroll" : F() ? "wheel" : "mousewheel"
				}(),
				normalize: function(e) {
					var t = 0,
						i = 0,
						n = 0,
						s = 0;
					return "detail" in e && (i = e.detail), "wheelDelta" in e && (i = -e.wheelDelta / 120), "wheelDeltaY" in e && (i = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && (t = i, i = 0), n = 10 * t, s = 10 * i, "deltaY" in e && (s = e.deltaY), "deltaX" in e && (n = e.deltaX), (n || s) && e.deltaMode && (1 === e.deltaMode ? (n *= 40, s *= 40) : (n *= 800, s *= 800)), n && !t && (t = n < 1 ? -1 : 1), s && !i && (i = s < 1 ? -1 : 1), {
						spinX: t,
						spinY: i,
						pixelX: n,
						pixelY: s
					}
				},
				handle: function(e) {
					var t = e,
						i = this,
						n = i.params.mousewheel;
					t.originalEvent && (t = t.originalEvent);
					var s = 0,
						a = i.rtl ? -1 : 1,
						r = mt.normalize(t);
					if (n.forceToAxis) if (i.isHorizontal()) {
						if (!(Math.abs(r.pixelX) > Math.abs(r.pixelY))) return !0;
						s = r.pixelX * a
					} else {
						if (!(Math.abs(r.pixelY) > Math.abs(r.pixelX))) return !0;
						s = r.pixelY
					} else s = Math.abs(r.pixelX) > Math.abs(r.pixelY) ? -r.pixelX * a : -r.pixelY;
					if (0 === s) return !0;
					if (n.invert && (s = -s), i.params.freeMode) {
						var o = i.getTranslate() + s * n.sensitivity,
							l = i.isBeginning,
							c = i.isEnd;
						if (o >= i.minTranslate() && (o = i.minTranslate()), o <= i.maxTranslate() && (o = i.maxTranslate()), i.setTransition(0), i.setTranslate(o), i.updateProgress(), i.updateActiveIndex(), i.updateSlidesClasses(), (!l && i.isBeginning || !c && i.isEnd) && i.updateSlidesClasses(), i.params.freeModeSticky && (clearTimeout(i.mousewheel.timeout), i.mousewheel.timeout = K.nextTick(function() {
							i.slideReset()
						}, 300)), i.emit("scroll", t), i.params.autoplay && i.params.autoplayDisableOnInteraction && i.stopAutoplay(), 0 === o || o === i.maxTranslate()) return !0
					} else {
						if (K.now() - i.mousewheel.lastScrollTime > 60) if (s < 0) if (i.isEnd && !i.params.loop || i.animating) {
							if (n.releaseOnEdges) return !0
						} else i.slideNext(), i.emit("scroll", t);
						else if (i.isBeginning && !i.params.loop || i.animating) {
							if (n.releaseOnEdges) return !0
						} else i.slidePrev(), i.emit("scroll", t);
						i.mousewheel.lastScrollTime = (new q.Date).getTime()
					}
					return t.preventDefault ? t.preventDefault() : t.returnValue = !1, !1
				},
				enable: function() {
					var t = this;
					if (!mt.event) return !1;
					if (t.mousewheel.enabled) return !1;
					var i = t.$el;
					return "container" !== t.params.mousewheel.eventsTarged && (i = e(t.params.mousewheel.eventsTarged)), i.on(mt.event, t.mousewheel.handle), t.mousewheel.enabled = !0, !0
				},
				disable: function() {
					var t = this;
					if (!mt.event) return !1;
					if (!t.mousewheel.enabled) return !1;
					var i = t.$el;
					return "container" !== t.params.mousewheel.eventsTarged && (i = e(t.params.mousewheel.eventsTarged)), i.off(mt.event, t.mousewheel.handle), t.mousewheel.enabled = !1, !0
				}
			},
			vt = {
				name: "mousewheel",
				params: {
					mousewheel: {
						enabled: !1,
						releaseOnEdges: !1,
						invert: !1,
						forceToAxis: !1,
						sensitivity: 1,
						eventsTarged: "container"
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						mousewheel: {
							enabled: !1,
							enable: mt.enable.bind(e),
							disable: mt.disable.bind(e),
							handle: mt.handle.bind(e),
							lastScrollTime: K.now()
						}
					})
				},
				on: {
					init: function() {
						var e = this;
						e.params.mousewheel.enabled && e.mousewheel.enable()
					},
					destroy: function() {
						var e = this;
						e.mousewheel.enabled && e.mousewheel.disable()
					}
				}
			},
			gt = {
				update: function() {
					var e = this,
						t = e.params.navigation;
					if (!e.params.loop) {
						var i = e.navigation,
							n = i.$nextEl,
							s = i.$prevEl;
						s && s.length > 0 && (e.isBeginning ? s.addClass(t.disabledClass) : s.removeClass(t.disabledClass)), n && n.length > 0 && (e.isEnd ? n.addClass(t.disabledClass) : n.removeClass(t.disabledClass))
					}
				},
				init: function() {
					var t = this,
						i = t.params.navigation;
					if (i.nextEl || i.prevEl) {
						var n, s;
						i.nextEl && (n = e(i.nextEl), t.params.uniqueNavElements && "string" == typeof i.nextEl && n.length > 1 && 1 === t.$el.find(i.nextEl).length && (n = t.$el.find(i.nextEl))), i.prevEl && (s = e(i.prevEl), t.params.uniqueNavElements && "string" == typeof i.prevEl && s.length > 1 && 1 === t.$el.find(i.prevEl).length && (s = t.$el.find(i.prevEl))), n && n.length > 0 && n.on("click", function(e) {
							e.preventDefault(), t.isEnd && !t.params.loop || t.slideNext()
						}), s && s.length > 0 && s.on("click", function(e) {
							e.preventDefault(), t.isBeginning && !t.params.loop || t.slidePrev()
						}), K.extend(t.navigation, {
							$nextEl: n,
							nextEl: n && n[0],
							$prevEl: s,
							prevEl: s && s[0]
						})
					}
				},
				destroy: function() {
					var e = this,
						t = e.navigation,
						i = t.$nextEl,
						n = t.$prevEl;
					i && i.length && (i.off("click"), i.removeClass(e.params.navigation.disabledClass)), n && n.length && (n.off("click"), n.removeClass(e.params.navigation.disabledClass))
				}
			},
			bt = {
				name: "navigation",
				params: {
					navigation: {
						nextEl: null,
						prevEl: null,
						hideOnClick: !1,
						disabledClass: "swiper-button-disabled",
						hiddenClass: "swiper-button-hidden"
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						navigation: {
							init: gt.init.bind(e),
							update: gt.update.bind(e),
							destroy: gt.destroy.bind(e)
						}
					})
				},
				on: {
					init: function() {
						var e = this;
						e.navigation.init(), e.navigation.update()
					},
					toEdge: function() {
						this.navigation.update()
					},
					fromEdge: function() {
						this.navigation.update()
					},
					destroy: function() {
						this.navigation.destroy()
					},
					click: function(t) {
						var i = this,
							n = i.navigation,
							s = n.$nextEl,
							a = n.$prevEl;
						!i.params.navigation.hideOnClick || e(t.target).is(a) || e(t.target).is(s) || (s && s.toggleClass(i.params.navigation.hiddenClass), a && a.toggleClass(i.params.navigation.hiddenClass))
					}
				}
			},
			yt = {
				update: function() {
					var t = this,
						i = t.params.pagination;
					if (i.el && t.pagination.el && t.pagination.$el && 0 !== t.pagination.$el.length) {
						var n, s = t.virtual && t.params.virtual.enabled ? t.virtual.slides.length : t.slides.length,
							a = t.pagination.$el,
							r = t.params.loop ? Math.ceil((s - 2 * t.loopedSlides) / t.params.slidesPerGroup) : t.snapGrid.length;
						if (t.params.loop ? (n = Math.ceil((t.activeIndex - t.loopedSlides) / t.params.slidesPerGroup), n > s - 1 - 2 * t.loopedSlides && (n -= s - 2 * t.loopedSlides), n > r - 1 && (n -= r), n < 0 && "bullets" !== t.params.paginationType && (n = r + n)) : n = void 0 !== t.snapIndex ? t.snapIndex : t.activeIndex || 0, "bullets" === i.type && t.pagination.bullets && t.pagination.bullets.length > 0) {
							var o = t.pagination.bullets;
							if (i.dynamicBullets && (t.pagination.bulletSize = o.eq(0)[t.isHorizontal() ? "outerWidth" : "outerHeight"](!0), a.css(t.isHorizontal() ? "width" : "height", 5 * t.pagination.bulletSize + "px")), o.removeClass(i.bulletActiveClass + " " + i.bulletActiveClass + "-next " + i.bulletActiveClass + "-next-next " + i.bulletActiveClass + "-prev " + i.bulletActiveClass + "-prev-prev"), a.length > 1) o.each(function(t, s) {
								var a = e(s);
								a.index() === n && (a.addClass(i.bulletActiveClass), i.dynamicBullets && (a.prev().addClass(i.bulletActiveClass + "-prev").prev().addClass(i.bulletActiveClass + "-prev-prev"), a.next().addClass(i.bulletActiveClass + "-next").next().addClass(i.bulletActiveClass + "-next-next")))
							});
							else {
								var l = o.eq(n);
								l.addClass(i.bulletActiveClass), i.dynamicBullets && (l.prev().addClass(i.bulletActiveClass + "-prev").prev().addClass(i.bulletActiveClass + "-prev-prev"), l.next().addClass(i.bulletActiveClass + "-next").next().addClass(i.bulletActiveClass + "-next-next"))
							}
							if (i.dynamicBullets) {
								var c = (5 * t.pagination.bulletSize - t.pagination.bulletSize) / 2 - n * t.pagination.bulletSize;
								o.css(t.isHorizontal() ? "left" : "top", c + "px")
							}
						}
						if ("fraction" === i.type && (a.find("." + i.currentClass).text(n + 1), a.find("." + i.totalClass).text(r)), "progressbar" === i.type) {
							var d = (n + 1) / r,
								u = d,
								h = 1;
							t.isHorizontal() || (h = d, u = 1), a.find("." + i.progressbarFillClass).transform("translate3d(0,0,0) scaleX(" + u + ") scaleY(" + h + ")").transition(t.params.speed)
						}
						"custom" === i.type && i.renderCustom ? (a.html(i.renderCustom(t, n + 1, r)), t.emit("paginationRender", t, a[0])) : t.emit("paginationUpdate", t, a[0])
					}
				},
				render: function() {
					var e = this,
						t = e.params.pagination;
					if (t.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
						var i = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length,
							n = e.pagination.$el,
							s = "";
						if ("bullets" === t.type) {
							for (var a = e.params.loop ? Math.ceil((i - 2 * e.loopedSlides) / e.params.slidesPerGroup) : e.snapGrid.length, r = 0; r < a; r += 1) t.renderBullet ? s += t.renderBullet.call(e, r, t.bulletClass) : s += "<" + t.bulletElement + ' class="' + t.bulletClass + '"></' + t.bulletElement + ">";
							n.html(s), e.pagination.bullets = n.find("." + t.bulletClass)
						}
						"fraction" === t.type && (s = t.renderFraction ? t.renderFraction.call(e, t.currentClass, t.totalClass) : '<span class="' + t.currentClass + '"></span> / <span class="' + t.totalClass + '"></span>', n.html(s)), "progressbar" === t.type && (s = t.renderProgressbar ? t.renderProgressbar.call(e, t.progressbarFillClass) : '<span class="' + t.progressbarFillClass + '"></span>', n.html(s)), "custom" !== t.type && e.emit("paginationRender", e.pagination.$el[0])
					}
				},
				init: function() {
					var t = this,
						i = t.params.pagination;
					if (i.el) {
						var n = e(i.el);
						0 !== n.length && (t.params.uniqueNavElements && "string" == typeof i.el && n.length > 1 && 1 === t.$el.find(i.el).length && (n = t.$el.find(i.el)), "bullets" === i.type && i.clickable && n.addClass(i.clickableClass), n.addClass(i.modifierClass + i.type), "bullets" === i.type && i.dynamicBullets && n.addClass("" + i.modifierClass + i.type + "-dynamic"), i.clickable && n.on("click", "." + i.bulletClass, function(i) {
							i.preventDefault();
							var n = e(this).index() * t.params.slidesPerGroup;
							t.params.loop && (n += t.loopedSlides), t.slideTo(n)
						}), K.extend(t.pagination, {
							$el: n,
							el: n[0]
						}))
					}
				},
				destroy: function() {
					var e = this,
						t = e.params.pagination;
					if (t.el && e.pagination.el && e.pagination.$el && 0 !== e.pagination.$el.length) {
						var i = e.pagination.$el;
						i.removeClass(t.hiddenClass), i.removeClass(t.modifierClass + t.type), e.pagination.bullets && e.pagination.bullets.removeClass(t.bulletActiveClass), t.clickable && i.off("click", "." + t.bulletClass)
					}
				}
			},
			wt = {
				name: "pagination",
				params: {
					pagination: {
						el: null,
						bulletElement: "span",
						clickable: !1,
						hideOnClick: !1,
						renderBullet: null,
						renderProgressbar: null,
						renderFraction: null,
						renderCustom: null,
						type: "bullets",
						dynamicBullets: !1,
						bulletClass: "swiper-pagination-bullet",
						bulletActiveClass: "swiper-pagination-bullet-active",
						modifierClass: "swiper-pagination-",
						currentClass: "swiper-pagination-current",
						totalClass: "swiper-pagination-total",
						hiddenClass: "swiper-pagination-hidden",
						progressbarFillClass: "swiper-pagination-progressbar-fill",
						clickableClass: "swiper-pagination-clickable"
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						pagination: {
							init: yt.init.bind(e),
							render: yt.render.bind(e),
							update: yt.update.bind(e),
							destroy: yt.destroy.bind(e)
						}
					})
				},
				on: {
					init: function() {
						var e = this;
						e.pagination.init(), e.pagination.render(), e.pagination.update()
					},
					activeIndexChange: function() {
						var e = this;
						e.params.loop ? e.pagination.update() : void 0 === e.snapIndex && e.pagination.update()
					},
					snapIndexChange: function() {
						var e = this;
						e.params.loop || e.pagination.update()
					},
					slidesLengthChange: function() {
						var e = this;
						e.params.loop && (e.pagination.render(), e.pagination.update())
					},
					snapGridLengthChange: function() {
						var e = this;
						e.params.loop || (e.pagination.render(), e.pagination.update())
					},
					destroy: function() {
						this.pagination.destroy()
					},
					click: function(t) {
						var i = this;
						i.params.pagination.el && i.params.pagination.hideOnClick && i.pagination.$el.length > 0 && !e(t.target).hasClass(i.params.pagination.bulletClass) && i.pagination.$el.toggleClass(i.params.pagination.hiddenClass)
					}
				}
			},
			xt = {
				setTranslate: function() {
					var e = this;
					if (e.params.scrollbar.el && e.scrollbar.el) {
						var t = e.scrollbar,
							i = e.rtl,
							n = e.progress,
							s = t.dragSize,
							a = t.trackSize,
							r = t.$dragEl,
							o = t.$el,
							l = e.params.scrollbar,
							c = s,
							d = (a - s) * n;
						i && e.isHorizontal() ? (d = -d, d > 0 ? (c = s - d, d = 0) : -d + s > a && (c = a + d)) : d < 0 ? (c = s + d, d = 0) : d + s > a && (c = a - d), e.isHorizontal() ? (Q.transforms3d ? r.transform("translate3d(" + d + "px, 0, 0)") : r.transform("translateX(" + d + "px)"), r[0].style.width = c + "px") : (Q.transforms3d ? r.transform("translate3d(0px, " + d + "px, 0)") : r.transform("translateY(" + d + "px)"), r[0].style.height = c + "px"), l.hide && (clearTimeout(e.scrollbar.timeout), o[0].style.opacity = 1, e.scrollbar.timeout = setTimeout(function() {
							o[0].style.opacity = 0, o.transition(400)
						}, 1e3))
					}
				},
				setTransition: function(e) {
					var t = this;
					t.params.scrollbar.el && t.scrollbar.el && t.scrollbar.$dragEl.transition(e)
				},
				updateSize: function() {
					var e = this;
					if (e.params.scrollbar.el && e.scrollbar.el) {
						var t = e.scrollbar,
							i = t.$dragEl,
							n = t.$el;
						i[0].style.width = "", i[0].style.height = "";
						var s, a = e.isHorizontal() ? n[0].offsetWidth : n[0].offsetHeight,
							r = e.size / e.virtualSize,
							o = r * (a / e.size);
						s = "auto" === e.params.scrollbar.dragSize ? a * r : parseInt(e.params.scrollbar.dragSize, 10), e.isHorizontal() ? i[0].style.width = s + "px" : i[0].style.height = s + "px", n[0].style.display = r >= 1 ? "none" : "", e.params.scrollbarHide && (n[0].style.opacity = 0), K.extend(t, {
							trackSize: a,
							divider: r,
							moveDivider: o,
							dragSize: s
						})
					}
				},
				setDragPosition: function(e) {
					var t, i = this,
						n = i.scrollbar,
						s = n.$el,
						a = n.dragSize,
						r = n.moveDivider;
					t = i.isHorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX || e.clientX : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY || e.clientY;
					var o = t - s.offset()[i.isHorizontal() ? "left" : "top"] - a / 2,
						l = -i.minTranslate() * r,
						c = -i.maxTranslate() * r;
					o < l ? o = l : o > c && (o = c), i.rtl && (o = c - o), o = -o / r, i.updateProgress(o), i.setTranslate(o), i.updateActiveIndex(), i.updateSlidesClasses()
				},
				onDragStart: function(e) {
					var t = this,
						i = t.params.scrollbar,
						n = t.scrollbar,
						s = t.$wrapperEl,
						a = n.$el,
						r = n.$dragEl;
					t.scrollbar.isTouched = !0, e.preventDefault(), e.stopPropagation(), s.transition(100), r.transition(100), n.setDragPosition(e), clearTimeout(t.scrollbar.dragTimeout), a.transition(0), i.hide && a.css("opacity", 1), t.emit("scrollbarDragStart", e)
				},
				onDragMove: function(e) {
					var t = this,
						i = t.scrollbar,
						n = t.$wrapperEl,
						s = i.$el,
						a = i.$dragEl;
					t.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1, i.setDragPosition(e), n.transition(0), s.transition(0), a.transition(0), t.emit("scrollbarDragMove", e))
				},
				onDragEnd: function(e) {
					var t = this,
						i = t.params.scrollbar,
						n = t.scrollbar,
						s = n.$el;
					t.scrollbar.isTouched && (t.scrollbar.isTouched = !1, i.hide && (clearTimeout(t.scrollbar.dragTimeout), t.scrollbar.dragTimeout = K.nextTick(function() {
						s.css("opacity", 0), s.transition(400)
					}, 1e3)), t.emit("scrollbarDragEnd", e), i.snapOnRelease && t.slideReset())
				},
				enableDraggable: function() {
					var t = this;
					if (t.params.scrollbar.el) {
						var i = t.scrollbar,
							n = i.$el,
							s = Q.touch ? n[0] : document;
						n.on(t.scrollbar.dragEvents.start, t.scrollbar.onDragStart), e(s).on(t.scrollbar.dragEvents.move, t.scrollbar.onDragMove), e(s).on(t.scrollbar.dragEvents.end, t.scrollbar.onDragEnd)
					}
				},
				disableDraggable: function() {
					var t = this;
					if (t.params.scrollbar.el) {
						var i = t.scrollbar,
							n = i.$el,
							s = Q.touch ? n[0] : document;
						n.off(t.scrollbar.dragEvents.start), e(s).off(t.scrollbar.dragEvents.move), e(s).off(t.scrollbar.dragEvents.end)
					}
				},
				init: function() {
					var t = this;
					if (t.params.scrollbar.el) {
						var i = t.scrollbar,
							n = t.$el,
							s = t.touchEvents,
							a = t.params.scrollbar,
							r = e(a.el);
						t.params.uniqueNavElements && "string" == typeof a.el && r.length > 1 && 1 === n.find(a.el).length && (r = n.find(a.el));
						var o = r.find(".swiper-scrollbar-drag");
						0 === o.length && (o = e('<div class="swiper-scrollbar-drag"></div>'), r.append(o)), t.scrollbar.dragEvents = function() {
							return !1 !== t.params.simulateTouch || Q.touch ? s : {
								start: "mousedown",
								move: "mousemove",
								end: "mouseup"
							}
						}(), K.extend(i, {
							$el: r,
							el: r[0],
							$dragEl: o,
							dragEl: o[0]
						}), a.draggable && i.enableDraggable()
					}
				},
				destroy: function() {
					this.scrollbar.disableDraggable()
				}
			},
			St = {
				name: "scrollbar",
				params: {
					scrollbar: {
						el: null,
						dragSize: "auto",
						hide: !1,
						draggable: !1,
						snapOnRelease: !0
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						scrollbar: {
							init: xt.init.bind(e),
							destroy: xt.destroy.bind(e),
							updateSize: xt.updateSize.bind(e),
							setTranslate: xt.setTranslate.bind(e),
							setTransition: xt.setTransition.bind(e),
							enableDraggable: xt.enableDraggable.bind(e),
							disableDraggable: xt.disableDraggable.bind(e),
							setDragPosition: xt.setDragPosition.bind(e),
							onDragStart: xt.onDragStart.bind(e),
							onDragMove: xt.onDragMove.bind(e),
							onDragEnd: xt.onDragEnd.bind(e),
							isTouched: !1,
							timeout: null,
							dragTimeout: null
						}
					})
				},
				on: {
					init: function() {
						var e = this;
						e.scrollbar.init(), e.scrollbar.updateSize(), e.scrollbar.setTranslate()
					},
					update: function() {
						this.scrollbar.updateSize()
					},
					resize: function() {
						this.scrollbar.updateSize()
					},
					observerUpdate: function() {
						this.scrollbar.updateSize()
					},
					setTranslate: function() {
						this.scrollbar.setTranslate()
					},
					setTransition: function(e) {
						this.scrollbar.setTransition(e)
					},
					destroy: function() {
						this.scrollbar.destroy()
					}
				}
			},
			Tt = {
				setTransform: function(t, i) {
					var n = this,
						s = n.rtl,
						a = e(t),
						r = s ? -1 : 1,
						o = a.attr("data-swiper-parallax") || "0",
						l = a.attr("data-swiper-parallax-x"),
						c = a.attr("data-swiper-parallax-y"),
						d = a.attr("data-swiper-parallax-scale"),
						u = a.attr("data-swiper-parallax-opacity");
					if (l || c ? (l = l || "0", c = c || "0") : n.isHorizontal() ? (l = o, c = "0") : (c = o, l = "0"), l = l.indexOf("%") >= 0 ? parseInt(l, 10) * i * r + "%" : l * i * r + "px", c = c.indexOf("%") >= 0 ? parseInt(c, 10) * i + "%" : c * i + "px", "undefined" != typeof pOpacity && null !== u) {
						var h = u - (u - 1) * (1 - Math.abs(i));
						a[0].style.opacity = h
					}
					if ("undefined" == typeof pScale || null === d) a.transform("translate3d(" + l + ", " + c + ", 0px)");
					else {
						var p = d - (d - 1) * (1 - Math.abs(i));
						a.transform("translate3d(" + l + ", " + c + ", 0px) scale(" + p + ")")
					}
				},
				setTranslate: function() {
					var t = this,
						i = t.$el,
						n = t.slides,
						s = t.progress;
					i.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(e, i) {
						t.parallax.setTransform(i, s)
					}), n.each(function(i, n) {
						e(n).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(e, i) {
							var s = Math.min(Math.max(n.progress, -1), 1);
							t.parallax.setTransform(i, s)
						})
					})
				},
				setTransition: function(t) {
					void 0 === t && (t = this.params.speed), this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(i, n) {
						var s = e(n),
							a = parseInt(s.attr("data-swiper-parallax-duration"), 10) || t;
						0 === t && (a = 0), s.transition(a)
					})
				}
			},
			Et = {
				name: "parallax",
				params: {
					parallax: {
						enabled: !1
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						parallax: {
							setTransform: Tt.setTransform.bind(e),
							setTranslate: Tt.setTranslate.bind(e),
							setTransition: Tt.setTransition.bind(e)
						}
					})
				},
				on: {
					beforeInit: function() {
						this.params.watchSlidesProgress = !0
					},
					init: function() {
						var e = this;
						e.params.parallax && e.parallax.setTranslate()
					},
					setTranslate: function() {
						var e = this;
						e.params.parallax && e.parallax.setTranslate()
					},
					setTransition: function(e) {
						var t = this;
						t.params.parallax && t.parallax.setTransition(e)
					}
				}
			},
			Ct = {
				getDistanceBetweenTouches: function(e) {
					if (e.targetTouches.length < 2) return 1;
					var t = e.targetTouches[0].pageX,
						i = e.targetTouches[0].pageY,
						n = e.targetTouches[1].pageX,
						s = e.targetTouches[1].pageY;
					return Math.sqrt(Math.pow(n - t, 2) + Math.pow(s - i, 2))
				},
				onGestureStart: function(t) {
					var i = this,
						n = i.params.zoom,
						s = i.zoom,
						a = s.gesture;
					if (!Q.gestures) {
						if ("touchstart" !== t.type || "touchstart" === t.type && t.targetTouches.length < 2) return;
						a.scaleStart = Ct.getDistanceBetweenTouches(t)
					}
					if (!(a.$slideEl && a.$slideEl.length || (a.$slideEl = e(this), 0 === a.$slideEl.length && (a.$slideEl = i.slides.eq(i.activeIndex)), a.$imageEl = a.$slideEl.find("img, svg, canvas"), a.$imageWrapEl = a.$imageEl.parent("." + n.containerClass), a.maxRatio = a.$imageWrapEl.attr("data-swiper-zoom") || n.maxRatio, 0 !== a.$imageWrapEl.length))) return void(a.$imageEl = void 0);
					a.$imageEl.transition(0), i.zoom.isScaling = !0
				},
				onGestureChange: function(e) {
					var t = this,
						i = t.params.zoom,
						n = t.zoom,
						s = n.gesture;
					if (!Q.gestures) {
						if ("touchmove" !== e.type || "touchmove" === e.type && e.targetTouches.length < 2) return;
						s.scaleMove = Ct.getDistanceBetweenTouches(e)
					}
					s.$imageEl && 0 !== s.$imageEl.length && (Q.gestures ? t.zoom.scale = e.scale * n.currentScale : n.scale = s.scaleMove / s.scaleStart * n.currentScale, n.scale > s.maxRatio && (n.scale = s.maxRatio - 1 + Math.pow(n.scale - s.maxRatio + 1, .5)), n.scale < i.minRatio && (n.scale = i.minRatio + 1 - Math.pow(i.minRatio - n.scale + 1, .5)), s.$imageEl.transform("translate3d(0,0,0) scale(" + n.scale + ")"))
				},
				onGestureEnd: function(e) {
					var t = this,
						i = t.params.zoom,
						n = t.zoom,
						s = n.gesture;
					!Q.gestures && ("touchend" !== e.type || "touchend" === e.type && e.changedTouches.length < 2) || s.$imageEl && 0 !== s.$imageEl.length && (n.scale = Math.max(Math.min(n.scale, s.maxRatio), i.minRatio), s.$imageEl.transition(t.params.speed).transform("translate3d(0,0,0) scale(" + n.scale + ")"), n.currentScale = n.scale, n.isScaling = !1, 1 === n.scale && (s.$slideEl = void 0))
				},
				onTouchStart: function(e) {
					var t = this,
						i = t.zoom,
						n = i.gesture,
						s = i.image;
					n.$imageEl && 0 !== n.$imageEl.length && (s.isTouched || (He.android && e.preventDefault(), s.isTouched = !0, s.touchesStart.x = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX, s.touchesStart.y = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY))
				},
				onTouchMove: function(e) {
					var t = this,
						i = t.zoom,
						n = i.gesture,
						s = i.image,
						a = i.velocity;
					if (n.$imageEl && 0 !== n.$imageEl.length && (t.allowClick = !1, s.isTouched && n.$slideEl)) {
						s.isMoved || (s.width = n.$imageEl[0].offsetWidth, s.height = n.$imageEl[0].offsetHeight, s.startX = K.getTranslate(n.$imageWrapEl[0], "x") || 0, s.startY = K.getTranslate(n.$imageWrapEl[0], "y") || 0, n.slideWidth = n.$slideEl[0].offsetWidth, n.slideHeight = n.$slideEl[0].offsetHeight, n.$imageWrapEl.transition(0), t.rtl && (s.startX = -s.startX), t.rtl && (s.startY = -s.startY));
						var r = s.width * i.scale,
							o = s.height * i.scale;
						if (!(r < n.slideWidth && o < n.slideHeight)) {
							if (s.minX = Math.min(n.slideWidth / 2 - r / 2, 0), s.maxX = -s.minX, s.minY = Math.min(n.slideHeight / 2 - o / 2, 0), s.maxY = -s.minY, s.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX, s.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY, !s.isMoved && !i.isScaling) {
								if (t.isHorizontal() && (Math.floor(s.minX) === Math.floor(s.startX) && s.touchesCurrent.x < s.touchesStart.x || Math.floor(s.maxX) === Math.floor(s.startX) && s.touchesCurrent.x > s.touchesStart.x)) return void(s.isTouched = !1);
								if (!t.isHorizontal() && (Math.floor(s.minY) === Math.floor(s.startY) && s.touchesCurrent.y < s.touchesStart.y || Math.floor(s.maxY) === Math.floor(s.startY) && s.touchesCurrent.y > s.touchesStart.y)) return void(s.isTouched = !1)
							}
							e.preventDefault(), e.stopPropagation(), s.isMoved = !0, s.currentX = s.touchesCurrent.x - s.touchesStart.x + s.startX, s.currentY = s.touchesCurrent.y - s.touchesStart.y + s.startY, s.currentX < s.minX && (s.currentX = s.minX + 1 - Math.pow(s.minX - s.currentX + 1, .8)), s.currentX > s.maxX && (s.currentX = s.maxX - 1 + Math.pow(s.currentX - s.maxX + 1, .8)), s.currentY < s.minY && (s.currentY = s.minY + 1 - Math.pow(s.minY - s.currentY + 1, .8)), s.currentY > s.maxY && (s.currentY = s.maxY - 1 + Math.pow(s.currentY - s.maxY + 1, .8)), a.prevPositionX || (a.prevPositionX = s.touchesCurrent.x), a.prevPositionY || (a.prevPositionY = s.touchesCurrent.y), a.prevTime || (a.prevTime = Date.now()), a.x = (s.touchesCurrent.x - a.prevPositionX) / (Date.now() - a.prevTime) / 2, a.y = (s.touchesCurrent.y - a.prevPositionY) / (Date.now() - a.prevTime) / 2, Math.abs(s.touchesCurrent.x - a.prevPositionX) < 2 && (a.x = 0), Math.abs(s.touchesCurrent.y - a.prevPositionY) < 2 && (a.y = 0), a.prevPositionX = s.touchesCurrent.x, a.prevPositionY = s.touchesCurrent.y, a.prevTime = Date.now(), n.$imageWrapEl.transform("translate3d(" + s.currentX + "px, " + s.currentY + "px,0)")
						}
					}
				},
				onTouchEnd: function() {
					var e = this,
						t = e.zoom,
						i = t.gesture,
						n = t.image,
						s = t.velocity;
					if (i.$imageEl && 0 !== i.$imageEl.length) {
						if (!n.isTouched || !n.isMoved) return n.isTouched = !1, void(n.isMoved = !1);
						n.isTouched = !1, n.isMoved = !1;
						var a = 300,
							r = 300,
							o = s.x * a,
							l = n.currentX + o,
							c = s.y * r,
							d = n.currentY + c;
						0 !== s.x && (a = Math.abs((l - n.currentX) / s.x)), 0 !== s.y && (r = Math.abs((d - n.currentY) / s.y));
						var u = Math.max(a, r);
						n.currentX = l, n.currentY = d;
						var h = n.width * t.scale,
							p = n.height * t.scale;
						n.minX = Math.min(i.slideWidth / 2 - h / 2, 0), n.maxX = -n.minX, n.minY = Math.min(i.slideHeight / 2 - p / 2, 0), n.maxY = -n.minY, n.currentX = Math.max(Math.min(n.currentX, n.maxX), n.minX), n.currentY = Math.max(Math.min(n.currentY, n.maxY), n.minY), i.$imageWrapEl.transition(u).transform("translate3d(" + n.currentX + "px, " + n.currentY + "px,0)")
					}
				},
				onTransitionEnd: function() {
					var e = this,
						t = e.zoom,
						i = t.gesture;
					i.$slideEl && e.previousIndex !== e.activeIndex && (i.$imageEl.transform("translate3d(0,0,0) scale(1)"), i.$imageWrapEl.transform("translate3d(0,0,0)"), i.$slideEl = void 0, i.$imageEl = void 0, i.$imageWrapEl = void 0, t.scale = 1, t.currentScale = 1)
				},
				toggle: function(e) {
					var t = this,
						i = t.zoom;
					i.scale && 1 !== i.scale ? i.out() : i. in (e)
				},
				in : function(t) {
					var i = this,
						n = i.zoom,
						s = i.params.zoom,
						a = n.gesture,
						r = n.image;
					if (a.$slideEl || (a.$slideEl = i.clickedSlide ? e(i.clickedSlide) : i.slides.eq(i.activeIndex), a.$imageEl = a.$slideEl.find("img, svg, canvas"), a.$imageWrapEl = a.$imageEl.parent("." + s.containerClass)), a.$imageEl && 0 !== a.$imageEl.length) {
						a.$slideEl.addClass("" + s.zoomedSlideClass);
						var o, l, c, d, u, h, p, f, m, v, g, b, y, w, x, S, T, E;
						void 0 === r.touchesStart.x && t ? (o = "touchend" === t.type ? t.changedTouches[0].pageX : t.pageX, l = "touchend" === t.type ? t.changedTouches[0].pageY : t.pageY) : (o = r.touchesStart.x, l = r.touchesStart.y), n.scale = a.$imageWrapEl.attr("data-swiper-zoom") || s.maxRatio, n.currentScale = a.$imageWrapEl.attr("data-swiper-zoom") || s.maxRatio, t ? (T = a.$slideEl[0].offsetWidth, E = a.$slideEl[0].offsetHeight, c = a.$slideEl.offset().left, d = a.$slideEl.offset().top, u = c + T / 2 - o, h = d + E / 2 - l, m = a.$imageEl[0].offsetWidth, v = a.$imageEl[0].offsetHeight, g = m * n.scale, b = v * n.scale, y = Math.min(T / 2 - g / 2, 0), w = Math.min(E / 2 - b / 2, 0), x = -y, S = -w, p = u * n.scale, f = h * n.scale, p < y && (p = y), p > x && (p = x), f < w && (f = w), f > S && (f = S)) : (p = 0, f = 0), a.$imageWrapEl.transition(300).transform("translate3d(" + p + "px, " + f + "px,0)"), a.$imageEl.transition(300).transform("translate3d(0,0,0) scale(" + n.scale + ")")
					}
				},
				out: function() {
					var t = this,
						i = t.zoom,
						n = t.params.zoom,
						s = i.gesture;
					s.$slideEl || (s.$slideEl = t.clickedSlide ? e(t.clickedSlide) : t.slides.eq(t.activeIndex), s.$imageEl = s.$slideEl.find("img, svg, canvas"), s.$imageWrapEl = s.$imageEl.parent("." + n.containerClass)), s.$imageEl && 0 !== s.$imageEl.length && (i.scale = 1, i.currentScale = 1, s.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"), s.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"), s.$slideEl.removeClass("" + n.zoomedSlideClass), s.$slideEl = void 0)
				},
				enable: function() {
					var t = this,
						i = t.zoom;
					if (!i.enabled) {
						i.enabled = !0;
						var n = t.slides,
							s = !("touchstart" !== t.touchEvents.start || !Q.passiveListener || !t.params.passiveListeners) && {
								passive: !0,
								capture: !1
							};
						Q.gestures ? (n.on("gesturestart", i.onGestureStart, s), n.on("gesturechange", i.onGestureChange, s), n.on("gestureend", i.onGestureEnd, s)) : "touchstart" === t.touchEvents.start && (n.on(t.touchEvents.start, i.onGestureStart, s), n.on(t.touchEvents.move, i.onGestureChange, s), n.on(t.touchEvents.end, i.onGestureEnd, s)), t.slides.each(function(n, s) {
							var a = e(s);
							a.find("." + t.params.zoom.containerClass).length > 0 && a.on(t.touchEvents.move, i.onTouchMove)
						})
					}
				},
				disable: function() {
					var t = this,
						i = t.zoom;
					if (i.enabled) {
						t.zoom.enabled = !1;
						var n = t.slides,
							s = !("touchstart" !== t.touchEvents.start || !Q.passiveListener || !t.params.passiveListeners) && {
								passive: !0,
								capture: !1
							};
						Q.gestures ? (n.off("gesturestart", i.onGestureStart, s), n.off("gesturechange", i.onGestureChange, s), n.off("gestureend", i.onGestureEnd, s)) : "touchstart" === t.touchEvents.start && (n.off(t.touchEvents.start, i.onGestureStart, s), n.off(t.touchEvents.move, i.onGestureChange, s), n.off(t.touchEvents.end, i.onGestureEnd, s)), t.slides.each(function(n, s) {
							var a = e(s);
							a.find("." + t.params.zoom.containerClass).length > 0 && a.off(t.touchEvents.move, i.onTouchMove)
						})
					}
				}
			},
			kt = {
				name: "zoom",
				params: {
					zoom: {
						enabled: !1,
						maxRatio: 3,
						minRatio: 1,
						toggle: !0,
						containerClass: "swiper-zoom-container",
						zoomedSlideClass: "swiper-slide-zoomed"
					}
				},
				create: function() {
					var e = this,
						t = {
							enabled: !1,
							scale: 1,
							currentScale: 1,
							isScaling: !1,
							gesture: {
								$slideEl: void 0,
								slideWidth: void 0,
								slideHeight: void 0,
								$imageEl: void 0,
								$imageWrapEl: void 0,
								maxRatio: 3
							},
							image: {
								isTouched: void 0,
								isMoved: void 0,
								currentX: void 0,
								currentY: void 0,
								minX: void 0,
								minY: void 0,
								maxX: void 0,
								maxY: void 0,
								width: void 0,
								height: void 0,
								startX: void 0,
								startY: void 0,
								touchesStart: {},
								touchesCurrent: {}
							},
							velocity: {
								x: void 0,
								y: void 0,
								prevPositionX: void 0,
								prevPositionY: void 0,
								prevTime: void 0
							}
						};
					"onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach(function(i) {
						t[i] = Ct[i].bind(e)
					}), K.extend(e, {
						zoom: t
					})
				},
				on: {
					init: function() {
						var e = this;
						e.params.zoom.enabled && e.zoom.enable()
					},
					destroy: function() {
						this.zoom.disable()
					},
					touchStart: function(e) {
						var t = this;
						t.zoom.enabled && t.zoom.onTouchStart(e)
					},
					touchEnd: function(e) {
						var t = this;
						t.zoom.enabled && t.zoom.onTouchEnd(e)
					},
					doubleTap: function(e) {
						var t = this;
						t.params.zoom.enabled && t.zoom.enabled && t.params.zoom.toggle && t.zoom.toggle(e)
					},
					transitionEnd: function() {
						var e = this;
						e.zoom.enabled && e.params.zoom.enabled && e.zoom.onTransitionEnd()
					}
				}
			},
			Pt = {
				loadInSlide: function(t, i) {
					void 0 === i && (i = !0);
					var n = this,
						s = n.params.lazy;
					if (void 0 !== t && 0 !== n.slides.length) {
						var a = n.virtual && n.params.virtual.enabled,
							r = a ? n.$wrapperEl.children("." + n.params.slideClass + '[data-swiper-slide-index="' + t + '"]') : n.slides.eq(t),
							o = r.find("." + s.elementClass + ":not(." + s.loadedClass + "):not(." + s.loadingClass + ")");
						!r.hasClass(s.elementClass) || r.hasClass(s.loadedClass) || r.hasClass(s.loadingClass) || (o = o.add(r[0])), 0 !== o.length && o.each(function(t, a) {
							var o = e(a);
							o.addClass(s.loadingClass);
							var l = o.attr("data-background"),
								c = o.attr("data-src"),
								d = o.attr("data-srcset"),
								u = o.attr("data-sizes");
							n.loadImage(o[0], c || l, d, u, !1, function() {
								if (void 0 !== n && null !== n && n && (!n || n.params)) {
									if (l ? (o.css("background-image", 'url("' + l + '")'), o.removeAttr("data-background")) : (d && (o.attr("srcset", d), o.removeAttr("data-srcset")), u && (o.attr("sizes", u), o.removeAttr("data-sizes")), c && (o.attr("src", c), o.removeAttr("data-src"))), o.addClass(s.loadedClass).removeClass(s.loadingClass), r.find("." + s.preloaderClass).remove(), n.params.loop && i) {
										var e = r.attr("data-swiper-slide-index");
										if (r.hasClass(n.params.slideDuplicateClass)) {
											var t = n.$wrapperEl.children('[data-swiper-slide-index="' + e + '"]:not(.' + n.params.slideDuplicateClass + ")");
											n.lazy.loadInSlide(t.index(), !1)
										} else {
											var a = n.$wrapperEl.children("." + n.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]');
											n.lazy.loadInSlide(a.index(), !1)
										}
									}
									n.emit("lazyImageReady", r[0], o[0])
								}
							}), n.emit("lazyImageLoad", r[0], o[0])
						})
					}
				},
				load: function() {
					function t(e) {
						if (l) {
							if (s.children("." + a.slideClass + '[data-swiper-slide-index="' + e + '"]').length) return !0
						} else if (r[e]) return !0;
						return !1
					}
					function i(t) {
						return l ? e(t).attr("data-swiper-slide-index") : e(t).index()
					}
					var n = this,
						s = n.$wrapperEl,
						a = n.params,
						r = n.slides,
						o = n.activeIndex,
						l = n.virtual && a.virtual.enabled,
						c = a.lazy,
						d = a.slidesPerView;
					if ("auto" === d && (d = 0), n.lazy.initialImageLoaded || (n.lazy.initialImageLoaded = !0), n.params.watchSlidesVisibility) s.children("." + a.slideVisibleClass).each(function(t, i) {
						var s = l ? e(i).attr("data-swiper-slide-index") : e(i).index();
						n.lazy.loadInSlide(s)
					});
					else if (d > 1) for (var u = o; u < o + d; u += 1) t(u) && n.lazy.loadInSlide(u);
					else n.lazy.loadInSlide(o);
					if (c.loadPrevNext) if (d > 1 || c.loadPrevNextAmount && c.loadPrevNextAmount > 1) {
						for (var h = c.loadPrevNextAmount, p = d, f = Math.min(o + p + Math.max(h, p), r.length), m = Math.max(o - Math.max(p, h), 0), v = o + d; v < f; v += 1) t(v) && n.lazy.loadInSlide(v);
						for (var g = m; g < o; g += 1) t(g) && n.lazy.loadInSlide(g)
					} else {
						var b = s.children("." + a.slideNextClass);
						b.length > 0 && n.lazy.loadInSlide(i(b));
						var y = s.children("." + a.slidePrevClass);
						y.length > 0 && n.lazy.loadInSlide(i(y))
					}
				}
			},
			zt = {
				name: "lazy",
				params: {
					lazy: {
						enabled: !1,
						loadPrevNext: !1,
						loadPrevNextAmount: 1,
						loadOnTransitionStart: !1,
						elementClass: "swiper-lazy",
						loadingClass: "swiper-lazy-loading",
						loadedClass: "swiper-lazy-loaded",
						preloaderClass: "swiper-lazy-preloader"
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						lazy: {
							initialImageLoaded: !1,
							load: Pt.load.bind(e),
							loadInSlide: Pt.loadInSlide.bind(e)
						}
					})
				},
				on: {
					beforeInit: function() {
						var e = this;
						e.params.preloadImages && (e.params.preloadImages = !1)
					},
					init: function() {
						var e = this;
						e.params.lazy.enabled && !e.params.loop && 0 === e.params.initialSlide && e.lazy.load()
					},
					scroll: function() {
						var e = this;
						e.params.freeMode && !e.params.freeModeSticky && e.lazy.load()
					},
					resize: function() {
						var e = this;
						e.params.lazy.enabled && e.lazy.load()
					},
					scrollbarDragMove: function() {
						var e = this;
						e.params.lazy.enabled && e.lazy.load()
					},
					transitionStart: function() {
						var e = this;
						e.params.lazy.enabled && (e.params.lazy.loadOnTransitionStart || !e.params.lazy.loadOnTransitionStart && !e.lazy.initialImageLoaded) && e.lazy.load()
					},
					transitionEnd: function() {
						var e = this;
						e.params.lazy.enabled && !e.params.lazy.loadOnTransitionStart && e.lazy.load()
					}
				}
			},
			Mt = {
				LinearSpline: function(e, t) {
					var i = function() {
							var e, t, i;
							return function(n, s) {
								for (t = -1, e = n.length; e - t > 1;) i = e + t >> 1, n[i] <= s ? t = i : e = i;
								return e
							}
						}();
					this.x = e, this.y = t, this.lastIndex = e.length - 1;
					var n, s;
					return this.interpolate = function(e) {
						return e ? (s = i(this.x, e), n = s - 1, (e - this.x[n]) * (this.y[s] - this.y[n]) / (this.x[s] - this.x[n]) + this.y[n]) : 0
					}, this
				},
				getInterpolateFunction: function(e) {
					var t = this;
					t.controller.spline || (t.controller.spline = t.params.loop ? new Mt.LinearSpline(t.slidesGrid, e.slidesGrid) : new Mt.LinearSpline(t.snapGrid, e.snapGrid))
				},
				setTranslate: function(e, t) {
					function i(e) {
						var t = e.rtl && "horizontal" === e.params.direction ? -a.translate : a.translate;
						"slide" === a.params.controller.by && (a.controller.getInterpolateFunction(e), s = -a.controller.spline.interpolate(-t)), s && "container" !== a.params.controller.by || (n = (e.maxTranslate() - e.minTranslate()) / (a.maxTranslate() - a.minTranslate()), s = (t - a.minTranslate()) * n + e.minTranslate()), a.params.controller.inverse && (s = e.maxTranslate() - s), e.updateProgress(s), e.setTranslate(s, a), e.updateActiveIndex(), e.updateSlidesClasses()
					}
					var n, s, a = this,
						r = a.controller.control;
					if (Array.isArray(r)) for (var o = 0; o < r.length; o += 1) r[o] !== t && r[o] instanceof st && i(r[o]);
					else r instanceof st && t !== r && i(r)
				},
				setTransition: function(e, t) {
					function i(t) {
						t.setTransition(e, s), 0 !== e && (t.transitionStart(), t.$wrapperEl.transitionEnd(function() {
							a && (t.params.loop && "slide" === s.params.controller.by && t.loopFix(), t.transitionEnd())
						}))
					}
					var n, s = this,
						a = s.controller.control;
					if (Array.isArray(a)) for (n = 0; n < a.length; n += 1) a[n] !== t && a[n] instanceof st && i(a[n]);
					else a instanceof st && t !== a && i(a)
				}
			},
			_t = {
				name: "controller",
				params: {
					controller: {
						control: void 0,
						inverse: !1,
						by: "slide"
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						controller: {
							control: e.params.controller.control,
							getInterpolateFunction: Mt.getInterpolateFunction.bind(e),
							setTranslate: Mt.setTranslate.bind(e),
							setTransition: Mt.setTransition.bind(e)
						}
					})
				},
				on: {
					update: function() {
						var e = this;
						e.controller.control && e.controller.spline && (e.controller.spline = void 0, delete e.controller.spline)
					},
					resize: function() {
						var e = this;
						e.controller.control && e.controller.spline && (e.controller.spline = void 0, delete e.controller.spline)
					},
					observerUpdate: function() {
						var e = this;
						e.controller.control && e.controller.spline && (e.controller.spline = void 0, delete e.controller.spline)
					},
					setTranslate: function(e, t) {
						var i = this;
						i.controller.control && i.controller.setTranslate(e, t)
					},
					setTransition: function(e, t) {
						var i = this;
						i.controller.control && i.controller.setTransition(e, t)
					}
				}
			},
			It = {
				makeElFocusable: function(e) {
					return e.attr("tabIndex", "0"), e
				},
				addElRole: function(e, t) {
					return e.attr("role", t), e
				},
				addElLabel: function(e, t) {
					return e.attr("aria-label", t), e
				},
				disableEl: function(e) {
					return e.attr("aria-disabled", !0), e
				},
				enableEl: function(e) {
					return e.attr("aria-disabled", !1), e
				},
				onEnterKey: function(t) {
					var i = this,
						n = i.params.a11y;
					if (13 === t.keyCode) {
						var s = e(t.target);
						i.navigation && i.navigation.$nextEl && s.is(i.navigation.$nextEl) && (i.isEnd && !i.params.loop || i.slideNext(), i.isEnd ? i.a11y.notify(n.lastSlideMessage) : i.a11y.notify(n.nextSlideMessage)), i.navigation && i.navigation.$prevEl && s.is(i.navigation.$prevEl) && (i.isBeginning && !i.params.loop || i.slidePrev(), i.isBeginning ? i.a11y.notify(n.firstSlideMessage) : i.a11y.notify(n.prevSlideMessage)), i.pagination && s.is("." + i.params.pagination.bulletClass) && s[0].click()
					}
				},
				notify: function(e) {
					var t = this,
						i = t.a11y.liveRegion;
					0 !== i.length && (i.html(""), i.html(e))
				},
				updateNavigation: function() {
					var e = this;
					if (!e.params.loop) {
						var t = e.navigation,
							i = t.$nextEl,
							n = t.$prevEl;
						n && n.length > 0 && (e.isBeginning ? e.a11y.disableEl(n) : e.a11y.enableEl(n)), i && i.length > 0 && (e.isEnd ? e.a11y.disableEl(i) : e.a11y.enableEl(i))
					}
				},
				updatePagination: function() {
					var t = this,
						i = t.params.a11y;
					t.pagination && t.params.pagination.clickable && t.pagination.bullets && t.pagination.bullets.length && t.pagination.bullets.each(function(n, s) {
						var a = e(s);
						t.a11y.makeElFocusable(a), t.a11y.addElRole(a, "button"), t.a11y.addElLabel(a, i.paginationBulletMessage.replace(/{{index}}/, a.index() + 1))
					})
				},
				init: function() {
					var e = this;
					e.$el.append(e.a11y.liveRegion);
					var t, i, n = e.params.a11y;
					e.navigation && e.navigation.$nextEl && (t = e.navigation.$nextEl), e.navigation && e.navigation.$prevEl && (i = e.navigation.$prevEl), t && (e.a11y.makeElFocusable(t), e.a11y.addElRole(t, "button"), e.a11y.addElLabel(t, n.nextSlideMessage), t.on("keydown", e.a11y.onEnterKey)), i && (e.a11y.makeElFocusable(i), e.a11y.addElRole(i, "button"), e.a11y.addElLabel(i, n.prevSlideMessage), i.on("keydown", e.a11y.onEnterKey)), e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.$el.on("keydown", "." + e.params.pagination.bulletClass, e.a11y.onEnterKey)
				},
				destroy: function() {
					var e = this;
					e.a11y.liveRegion && e.a11y.liveRegion.length > 0 && e.a11y.liveRegion.remove();
					var t, i;
					e.navigation && e.navigation.$nextEl && (t = e.navigation.$nextEl), e.navigation && e.navigation.$prevEl && (i = e.navigation.$prevEl), t && t.off("keydown", e.a11y.onEnterKey), i && i.off("keydown", e.a11y.onEnterKey), e.pagination && e.params.pagination.clickable && e.pagination.bullets && e.pagination.bullets.length && e.pagination.$el.off("keydown", "." + e.params.pagination.bulletClass, e.a11y.onEnterKey)
				}
			},
			Dt = {
				name: "a11y",
				params: {
					a11y: {
						enabled: !1,
						notificationClass: "swiper-notification",
						prevSlideMessage: "Previous slide",
						nextSlideMessage: "Next slide",
						firstSlideMessage: "This is the first slide",
						lastSlideMessage: "This is the last slide",
						paginationBulletMessage: "Go to slide {{index}}"
					}
				},
				create: function() {
					var t = this;
					K.extend(t, {
						a11y: {
							liveRegion: e('<span class="' + t.params.a11y.notificationClass + '" aria-live="assertive" aria-atomic="true"></span>')
						}
					}), (0, p.
				default)(It).forEach(function(e) {
						t.a11y[e] = It[e].bind(t)
					})
				},
				on: {
					init: function() {
						var e = this;
						e.params.a11y.enabled && (e.a11y.init(), e.a11y.updateNavigation())
					},
					toEdge: function() {
						var e = this;
						e.params.a11y.enabled && e.a11y.updateNavigation()
					},
					fromEdge: function() {
						var e = this;
						e.params.a11y.enabled && e.a11y.updateNavigation()
					},
					paginationUpdate: function() {
						var e = this;
						e.params.a11y.enabled && e.a11y.updatePagination()
					},
					destroy: function() {
						var e = this;
						e.params.a11y.enabled && e.a11y.destroy()
					}
				}
			},
			Lt = {
				init: function() {
					var e = this;
					if (e.params.history) {
						if (!q.history || !q.history.pushState) return e.params.history.enabled = !1, void(e.params.hashNavigation.enabled = !0);
						var t = e.history;
						t.initialized = !0, t.paths = Lt.getPathValues(), (t.paths.key || t.paths.value) && (t.scrollToSlide(0, t.paths.value, e.params.runCallbacksOnInit), e.params.history.replaceState || q.addEventListener("popstate", e.history.setHistoryPopState))
					}
				},
				destroy: function() {
					var e = this;
					e.params.history.replaceState || q.removeEventListener("popstate", e.history.setHistoryPopState)
				},
				setHistoryPopState: function() {
					var e = this;
					e.history.paths = Lt.getPathValues(), e.history.scrollToSlide(e.params.speed, e.history.paths.value, !1)
				},
				getPathValues: function() {
					var e = q.location.pathname.slice(1).split("/"),
						t = e.length;
					return {
						key: e[t - 2],
						value: e[t - 1]
					}
				},
				setHistory: function(e, t) {
					var i = this;
					if (i.history.initialized && i.params.history.enabled) {
						var n = i.slides.eq(t),
							s = Lt.slugify(n.attr("data-history"));
						q.location.pathname.includes(e) || (s = e + "/" + s);
						var a = q.history.state;
						a && a.value === s || (i.params.history.replaceState ? q.history.replaceState({
							value: s
						}, null, s) : q.history.pushState({
							value: s
						}, null, s))
					}
				},
				slugify: function(e) {
					return e.toString().toLowerCase().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-").replace(/^-+/, "").replace(/-+$/, "")
				},
				scrollToSlide: function(e, t, i) {
					var n = this;
					if (t) for (var s = 0, a = n.slides.length; s < a; s += 1) {
						var r = n.slides.eq(s),
							o = Lt.slugify(r.attr("data-history"));
						if (o === t && !r.hasClass(n.params.slideDuplicateClass)) {
							var l = r.index();
							n.slideTo(l, e, i)
						}
					} else n.slideTo(0, e, i)
				}
			},
			$t = {
				name: "history",
				params: {
					history: {
						enabled: !1,
						replaceState: !1,
						key: "slides"
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						history: {
							init: Lt.init.bind(e),
							setHistory: Lt.setHistory.bind(e),
							setHistoryPopState: Lt.setHistoryPopState.bind(e),
							scrollToSlide: Lt.scrollToSlide.bind(e)
						}
					})
				},
				on: {
					init: function() {
						var e = this;
						e.params.history.enabled && e.history.init()
					},
					destroy: function() {
						var e = this;
						e.params.history.enabled && e.history.destroy()
					},
					transitionEnd: function() {
						var e = this;
						e.history.initialized && e.history.setHistory(e.params.history.key, e.activeIndex)
					}
				}
			},
			At = {
				onHashCange: function() {
					var e = this,
						t = document.location.hash.replace("#", "");
					t !== e.slides.eq(e.activeIndex).attr("data-hash") && e.slideTo(e.$wrapperEl.children("." + e.params.slideClass + '[data-hash="' + t + '"]').index())
				},
				setHash: function() {
					var e = this;
					if (e.hashNavigation.initialized && e.params.hashNavigation.enabled) if (e.params.hashNavigation.replaceState && q.history && q.history.replaceState) q.history.replaceState(null, null, "#" + e.slides.eq(e.activeIndex).attr("data-hash") || "");
					else {
						var t = e.slides.eq(e.activeIndex),
							i = t.attr("data-hash") || t.attr("data-history");
						document.location.hash = i || ""
					}
				},
				init: function() {
					var t = this;
					if (!(!t.params.hashNavigation.enabled || t.params.history && t.params.history.enabled)) {
						t.hashNavigation.initialized = !0;
						var i = document.location.hash.replace("#", "");
						if (i) for (var n = 0, s = t.slides.length; n < s; n += 1) {
							var a = t.slides.eq(n),
								r = a.attr("data-hash") || a.attr("data-history");
							if (r === i && !a.hasClass(t.params.slideDuplicateClass)) {
								var o = a.index();
								t.slideTo(o, 0, t.params.runCallbacksOnInit, !0)
							}
						}
						t.params.hashNavigation.watchState && e(q).on("hashchange", t.hashNavigation.onHashCange)
					}
				},
				destroy: function() {
					var t = this;
					t.params.hashNavigation.watchState && e(q).off("hashchange", t.hashNavigation.onHashCange)
				}
			},
			Xt = {
				name: "hash-navigation",
				params: {
					hashNavigation: {
						enabled: !1,
						replaceState: !1,
						watchState: !1
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						hashNavigation: {
							initialized: !1,
							init: At.init.bind(e),
							destroy: At.destroy.bind(e),
							setHash: At.setHash.bind(e),
							onHashCange: At.onHashCange.bind(e)
						}
					})
				},
				on: {
					init: function() {
						var e = this;
						e.params.hashNavigation.enabled && e.hashNavigation.init()
					},
					destroy: function() {
						var e = this;
						e.params.hashNavigation.enabled && e.hashNavigation.destroy()
					},
					transitionEnd: function() {
						var e = this;
						e.hashNavigation.initialized && e.hashNavigation.setHash()
					}
				}
			},
			Yt = {
				run: function() {
					var e = this,
						t = e.slides.eq(e.activeIndex),
						i = e.params.autoplay.delay;
					t.attr("data-swiper-autoplay") && (i = t.attr("data-swiper-autoplay") || e.params.autoplay.delay), e.autoplay.timeout = K.nextTick(function() {
						e.params.loop ? (e.loopFix(), e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")) : e.isEnd ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(0, e.params.speed, !0, !0), e.emit("autoplay")) : (e.slideNext(e.params.speed, !0, !0), e.emit("autoplay"))
					}, i)
				},
				start: function() {
					var e = this;
					return void 0 === e.autoplay.timeout && (!e.autoplay.running && (e.autoplay.running = !0, e.emit("autoplayStart"), e.autoplay.run(), !0))
				},
				stop: function() {
					var e = this;
					return !!e.autoplay.running && (void 0 !== e.autoplay.timeout && (e.autoplay.timeout && (clearTimeout(e.autoplay.timeout), e.autoplay.timeout = void 0), e.autoplay.running = !1, e.emit("autoplayStop"), !0))
				},
				pause: function(e) {
					var t = this;
					t.autoplay.running && (t.autoplay.paused || (t.autoplay.timeout && clearTimeout(t.autoplay.timeout), t.autoplay.paused = !0, 0 === e ? (t.autoplay.paused = !1, t.autoplay.run()) : t.$wrapperEl.transitionEnd(function() {
						t && (t.autoplay.paused = !1, t.autoplay.running ? t.autoplay.run() : t.autoplay.stop())
					})))
				}
			},
			Ot = {
				name: "autoplay",
				params: {
					autoplay: {
						enabled: !1,
						delay: 3e3,
						disableOnInteraction: !0,
						stopOnLastSlide: !1
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						autoplay: {
							running: !1,
							paused: !1,
							run: Yt.run.bind(e),
							start: Yt.start.bind(e),
							stop: Yt.stop.bind(e),
							pause: Yt.pause.bind(e)
						}
					})
				},
				on: {
					init: function() {
						var e = this;
						e.params.autoplay.enabled && e.autoplay.start()
					},
					beforeTransitionStart: function(e, t) {
						var i = this;
						i.autoplay.running && (t || !i.params.autoplay.disableOnInteraction ? i.autoplay.pause(e) : i.autoplay.stop())
					},
					sliderFirstMove: function() {
						var e = this;
						e.autoplay.running && (e.params.autoplay.disableOnInteraction ? e.autoplay.stop() : e.autoplay.pause())
					},
					destroy: function() {
						var e = this;
						e.autoplay.running && e.autoplay.stop()
					}
				}
			},
			Ht = {
				setTranslate: function() {
					for (var e = this, t = e.slides, i = 0; i < t.length; i += 1) {
						var n = e.slides.eq(i),
							s = n[0].swiperSlideOffset,
							a = -s;
						e.params.virtualTranslate || (a -= e.translate);
						var r = 0;
						e.isHorizontal() || (r = a, a = 0);
						var o = e.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(n[0].progress), 0) : 1 + Math.min(Math.max(n[0].progress, -1), 0);
						n.css({
							opacity: o
						}).transform("translate3d(" + a + "px, " + r + "px, 0px)")
					}
				},
				setTransition: function(e) {
					var t = this,
						i = t.slides,
						n = t.$wrapperEl;
					if (i.transition(e), t.params.virtualTranslate && 0 !== e) {
						var s = !1;
						i.transitionEnd(function() {
							if (!s && t) {
								s = !0, t.animating = !1;
								for (var e = ["webkitTransitionEnd", "transitionend"], i = 0; i < e.length; i += 1) n.trigger(e[i])
							}
						})
					}
				}
			},
			Nt = {
				name: "effect-fade",
				params: {
					fadeEffect: {
						crossFade: !1
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						fadeEffect: {
							setTranslate: Ht.setTranslate.bind(e),
							setTransition: Ht.setTransition.bind(e)
						}
					})
				},
				on: {
					beforeInit: function() {
						var e = this;
						"fade" === e.params.effect && (e.classNames.push(e.params.containerModifierClass + "fade"), K.extend(e.params, {
							slidesPerView: 1,
							slidesPerColumn: 1,
							slidesPerGroup: 1,
							watchSlidesProgress: !0,
							spaceBetween: 0,
							virtualTranslate: !0
						}))
					},
					setTranslate: function() {
						var e = this;
						"fade" === e.params.effect && e.fadeEffect.setTranslate()
					},
					setTransition: function(e) {
						var t = this;
						"fade" === t.params.effect && t.fadeEffect.setTransition(e)
					}
				}
			},
			Bt = {
				setTranslate: function() {
					var t, i = this,
						n = i.$el,
						s = i.$wrapperEl,
						a = i.slides,
						r = i.width,
						o = i.height,
						l = i.rtl,
						c = i.size,
						d = i.params.cubeEffect,
						u = i.isHorizontal(),
						h = i.virtual && i.params.virtual.enabled,
						p = 0;
					d.shadow && (u ? (t = s.find(".swiper-cube-shadow"), 0 === t.length && (t = e('<div class="swiper-cube-shadow"></div>'), s.append(t)), t.css({
						height: r + "px"
					})) : (t = n.find(".swiper-cube-shadow"), 0 === t.length && (t = e('<div class="swiper-cube-shadow"></div>'), n.append(t))));
					for (var f = 0; f < a.length; f += 1) {
						var m = a.eq(f),
							v = f;
						h && (v = parseInt(m.attr("data-swiper-slide-index"), 10));
						var g = 90 * v,
							b = Math.floor(g / 360);
						l && (g = -g, b = Math.floor(-g / 360));
						var y = Math.max(Math.min(m[0].progress, 1), -1),
							w = 0,
							x = 0,
							S = 0;
						v % 4 == 0 ? (w = 4 * -b * c, S = 0) : (v - 1) % 4 == 0 ? (w = 0, S = 4 * -b * c) : (v - 2) % 4 == 0 ? (w = c + 4 * b * c, S = c) : (v - 3) % 4 == 0 && (w = -c, S = 3 * c + 4 * c * b), l && (w = -w), u || (x = w, w = 0);
						var T = "rotateX(" + (u ? 0 : -g) + "deg) rotateY(" + (u ? g : 0) + "deg) translate3d(" + w + "px, " + x + "px, " + S + "px)";
						if (y <= 1 && y > -1 && (p = 90 * v + 90 * y, l && (p = 90 * -v - 90 * y)), m.transform(T), d.slideShadows) {
							var E = u ? m.find(".swiper-slide-shadow-left") : m.find(".swiper-slide-shadow-top"),
								C = u ? m.find(".swiper-slide-shadow-right") : m.find(".swiper-slide-shadow-bottom");
							0 === E.length && (E = e('<div class="swiper-slide-shadow-' + (u ? "left" : "top") + '"></div>'), m.append(E)), 0 === C.length && (C = e('<div class="swiper-slide-shadow-' + (u ? "right" : "bottom") + '"></div>'), m.append(C)), E.length && (E[0].style.opacity = Math.max(-y, 0)), C.length && (C[0].style.opacity = Math.max(y, 0))
						}
					}
					if (s.css({
						"-webkit-transform-origin": "50% 50% -" + c / 2 + "px",
						"-moz-transform-origin": "50% 50% -" + c / 2 + "px",
						"-ms-transform-origin": "50% 50% -" + c / 2 + "px",
						"transform-origin": "50% 50% -" + c / 2 + "px"
					}), d.shadow) if (u) t.transform("translate3d(0px, " + (r / 2 + d.shadowOffset) + "px, " + -r / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + d.shadowScale + ")");
					else {
						var k = Math.abs(p) - 90 * Math.floor(Math.abs(p) / 90),
							P = 1.5 - (Math.sin(2 * k * Math.PI / 360) / 2 + Math.cos(2 * k * Math.PI / 360) / 2),
							z = d.shadowScale,
							M = d.shadowScale / P,
							_ = d.shadowOffset;
						t.transform("scale3d(" + z + ", 1, " + M + ") translate3d(0px, " + (o / 2 + _) + "px, " + -o / 2 / M + "px) rotateX(-90deg)")
					}
					var I = we.isSafari || we.isUiWebView ? -c / 2 : 0;
					s.transform("translate3d(0px,0," + I + "px) rotateX(" + (i.isHorizontal() ? 0 : p) + "deg) rotateY(" + (i.isHorizontal() ? -p : 0) + "deg)")
				},
				setTransition: function(e) {
					var t = this,
						i = t.$el;
					t.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), t.params.cubeEffect.shadow && !t.isHorizontal() && i.find(".swiper-cube-shadow").transition(e)
				}
			},
			Rt = {
				name: "effect-cube",
				params: {
					cubeEffect: {
						slideShadows: !0,
						shadow: !0,
						shadowOffset: 20,
						shadowScale: .94
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						cubeEffect: {
							setTranslate: Bt.setTranslate.bind(e),
							setTransition: Bt.setTransition.bind(e)
						}
					})
				},
				on: {
					beforeInit: function() {
						var e = this;
						"cube" === e.params.effect && (e.classNames.push(e.params.containerModifierClass + "cube"), e.classNames.push(e.params.containerModifierClass + "3d"), K.extend(e.params, {
							slidesPerView: 1,
							slidesPerColumn: 1,
							slidesPerGroup: 1,
							watchSlidesProgress: !0,
							resistanceRatio: 0,
							spaceBetween: 0,
							centeredSlides: !1,
							virtualTranslate: !0
						}))
					},
					setTranslate: function() {
						var e = this;
						"cube" === e.params.effect && e.cubeEffect.setTranslate()
					},
					setTransition: function(e) {
						var t = this;
						"cube" === t.params.effect && t.cubeEffect.setTransition(e)
					}
				}
			},
			Vt = {
				setTranslate: function() {
					for (var t = this, i = t.slides, n = 0; n < i.length; n += 1) {
						var s = i.eq(n),
							a = s[0].progress;
						t.params.flipEffect.limitRotation && (a = Math.max(Math.min(s[0].progress, 1), -1));
						var r = s[0].swiperSlideOffset,
							o = -180 * a,
							l = o,
							c = 0,
							d = -r,
							u = 0;
						if (t.isHorizontal() ? t.rtl && (l = -l) : (u = d, d = 0, c = -l, l = 0), s[0].style.zIndex = -Math.abs(Math.round(a)) + i.length, t.params.flipEffect.slideShadows) {
							var h = t.isHorizontal() ? s.find(".swiper-slide-shadow-left") : s.find(".swiper-slide-shadow-top"),
								p = t.isHorizontal() ? s.find(".swiper-slide-shadow-right") : s.find(".swiper-slide-shadow-bottom");
							0 === h.length && (h = e('<div class="swiper-slide-shadow-' + (t.isHorizontal() ? "left" : "top") + '"></div>'), s.append(h)), 0 === p.length && (p = e('<div class="swiper-slide-shadow-' + (t.isHorizontal() ? "right" : "bottom") + '"></div>'), s.append(p)), h.length && (h[0].style.opacity = Math.max(-a, 0)), p.length && (p[0].style.opacity = Math.max(a, 0))
						}
						s.transform("translate3d(" + d + "px, " + u + "px, 0px) rotateX(" + c + "deg) rotateY(" + l + "deg)")
					}
				},
				setTransition: function(t) {
					var i = this,
						n = i.slides,
						s = i.activeIndex,
						a = i.$wrapperEl;
					if (n.transition(t).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(t), i.params.virtualTranslate && 0 !== t) {
						var r = !1;
						n.eq(s).transitionEnd(function() {
							if (!r && i && e(this).hasClass(i.params.slideActiveClass)) {
								r = !0, i.animating = !1;
								for (var t = ["webkitTransitionEnd", "transitionend"], n = 0; n < t.length; n += 1) a.trigger(t[n])
							}
						})
					}
				}
			},
			Wt = {
				name: "effect-flip",
				params: {
					flipEffect: {
						slideShadows: !0,
						limitRotation: !0
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						flipEffect: {
							setTranslate: Vt.setTranslate.bind(e),
							setTransition: Vt.setTransition.bind(e)
						}
					})
				},
				on: {
					beforeInit: function() {
						var e = this;
						"flip" === e.params.effect && (e.classNames.push(e.params.containerModifierClass + "flip"), e.classNames.push(e.params.containerModifierClass + "3d"), K.extend(e.params, {
							slidesPerView: 1,
							slidesPerColumn: 1,
							slidesPerGroup: 1,
							watchSlidesProgress: !0,
							spaceBetween: 0,
							virtualTranslate: !0
						}))
					},
					setTranslate: function() {
						var e = this;
						"flip" === e.params.effect && e.flipEffect.setTranslate()
					},
					setTransition: function(e) {
						var t = this;
						"flip" === t.params.effect && t.flipEffect.setTransition(e)
					}
				}
			},
			jt = {
				setTranslate: function() {
					for (var t = this, i = t.width, n = t.height, s = t.slides, a = t.$wrapperEl, r = t.slidesSizesGrid, o = t.params.coverflowEffect, l = t.isHorizontal(), c = t.translate, d = l ? i / 2 - c : n / 2 - c, u = l ? o.rotate : -o.rotate, h = o.depth, p = 0, f = s.length; p < f; p += 1) {
						var m = s.eq(p),
							v = r[p],
							g = m[0].swiperSlideOffset,
							b = (d - g - v / 2) / v * o.modifier,
							y = l ? u * b : 0,
							w = l ? 0 : u * b,
							x = -h * Math.abs(b),
							S = l ? 0 : o.stretch * b,
							T = l ? o.stretch * b : 0;
						Math.abs(T) < .001 && (T = 0), Math.abs(S) < .001 && (S = 0), Math.abs(x) < .001 && (x = 0), Math.abs(y) < .001 && (y = 0), Math.abs(w) < .001 && (w = 0);
						var E = "translate3d(" + T + "px," + S + "px," + x + "px)  rotateX(" + w + "deg) rotateY(" + y + "deg)";
						if (m.transform(E), m[0].style.zIndex = 1 - Math.abs(Math.round(b)), o.slideShadows) {
							var C = l ? m.find(".swiper-slide-shadow-left") : m.find(".swiper-slide-shadow-top"),
								k = l ? m.find(".swiper-slide-shadow-right") : m.find(".swiper-slide-shadow-bottom");
							0 === C.length && (C = e('<div class="swiper-slide-shadow-' + (l ? "left" : "top") + '"></div>'), m.append(C)), 0 === k.length && (k = e('<div class="swiper-slide-shadow-' + (l ? "right" : "bottom") + '"></div>'), m.append(k)), C.length && (C[0].style.opacity = b > 0 ? b : 0), k.length && (k[0].style.opacity = -b > 0 ? -b : 0)
						}
					}
					if (we.ie) {
						a[0].style.perspectiveOrigin = d + "px 50%"
					}
				},
				setTransition: function(e) {
					this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)
				}
			},
			Ft = {
				name: "effect-coverflow",
				params: {
					coverflowEffect: {
						rotate: 50,
						stretch: 0,
						depth: 100,
						modifier: 1,
						slideShadows: !0
					}
				},
				create: function() {
					var e = this;
					K.extend(e, {
						coverflowEffect: {
							setTranslate: jt.setTranslate.bind(e),
							setTransition: jt.setTransition.bind(e)
						}
					})
				},
				on: {
					beforeInit: function() {
						var e = this;
						"coverflow" === e.params.effect && (e.classNames.push(e.params.containerModifierClass + "coverflow"), e.classNames.push(e.params.containerModifierClass + "3d"), e.params.watchSlidesProgress = !0)
					},
					setTranslate: function() {
						var e = this;
						"coverflow" === e.params.effect && e.coverflowEffect.setTranslate()
					},
					setTransition: function(e) {
						var t = this;
						"coverflow" === t.params.effect && t.coverflowEffect.setTransition(e)
					}
				}
			};
		return st.components = [at, rt, ot, lt, dt, ht, ft, vt, bt, wt, St, Et, kt, zt, _t, Dt, $t, Xt, Ot, Nt, Rt, Wt, Ft], st
	})
}, function(e, t, i) {
	"use strict";
	(function(e) {
		i(102);
		var t = !1;
		window.addEventListener("pageshow", function() {
			t && window.location.reload()
		}), window.addEventListener("pagehide", function() {
			t = !0
		});
		var n = {
			init: function() {
				this.initDom(), this.initEvent()
			},
			initDom: function() {
				this.$enterInput = e("#J_enter_search"), this.$searchCover = e("#J_search_cover"), this.$searchInput = e("#J_search_input"), this.$closeBtn = e("#J_search_close"), this.$searchBtn = e("#J_search_btn"), this.$clearIcon = e("#J_search_clear"), this.$suggest = e(".autocomplete-suggestions"), this.$searchCover.hide(), this.$suggest.hide()
			},
			initEvent: function() {
				this.showCover(), this.closeCover(), this.autoLoad(), this.listenInput(), this.clearSearch(), this.searchHandle()
			},
			showCover: function() {
				var e = this;
				this.$enterInput.focus(function() {
					e.$searchCover.show(), e.$searchInput.focus()
				})
			},
			closeCover: function() {
				var e = this;
				this.$closeBtn.on("click", function() {
					e.$searchCover.hide(), e.$searchInput.val(""), e.$clearIcon.hide()
				})
			},
			autoLoad: function() {/*
				var t = this;
				this.$searchInput.autocomplete({
					lookup: function(i, n) {
						e.ajax({
							url: "//search.m.ztm.me/api/keyword/suggestion_jsonp",
							data: {
								keyword: i
							},
							dataType: "jsonp",
							jsonp: "callback",
							success: function(e, i, s) {
								if (t.$searchInput.val().length <= 0);
								else {
									var a = [];
									if (e.data && e.data.length > 0) {
										for (var r = 0; r < e.data.length; r++) a.push({
											value: e.data[r]
										});
										if (a.length > 0) {
											n({
												suggestions: a
											})
										}
									} else n({
										suggestions: []
									})
								}
							}
						})
					},
					width: "100%",
					maxHeight: "auto",
					sugTag: "#J_search_sug",
					zIndex: "200",
					triggerSelectOnValidInput: !1,
					onSelect: function(e) {
						var i = t.$searchInput.closest("form");
						i.append('<input type="hidden" name="source" value="sug">'), dataLayer.push({
							event: "2320001",
							"关键词": e.value,
							"搜索方式": "sug搜索"
						}), i.trigger("submit")
					}
				})*/
			},
			listenInput: function() {
				var t = this;
				this.$searchInput.bind("input propertychange", function() {
					e(this).val().length > 0 ? t.$clearIcon.show() : t.$clearIcon.hide()
				})
			},
			clearSearch: function() {
				var e = this;
				this.$clearIcon.on("click", function() {
					e.$searchInput.val("").focus(), e.$clearIcon.hide()
				})
			},
			searchHandle: function() {
				var e = this;
				e.$searchBtn.removeAttr("disabled"), e.$searchBtn.on("click", function() {
					if (dataLayer.push({
						event: "2320001",
						"关键词": e.$searchInput.val(),
						"搜索方式": "输入搜索"
					}), !e.$searchInput.val()) return e.$searchInput.blur(), !1
				})
			}
		};
		e(function() {
			n.init()
		})
	}).call(t, i(1))
}, function(e, t) {}, function(e, t, i) {
	var n = i(61);
	e.exports = function(e, t, i) {
		if (n(e), void 0 === t) return e;
		switch (i) {
		case 1:
			return function(i) {
				return e.call(t, i)
			};
		case 2:
			return function(i, n) {
				return e.call(t, i, n)
			};
		case 3:
			return function(i, n, s) {
				return e.call(t, i, n, s)
			}
		}
		return function() {
			return e.apply(t, arguments)
		}
	}
}, function(e, t) {
	e.exports = function(e) {
		if ("function" != typeof e) throw TypeError(e + " is not a function!");
		return e
	}
}, function(e, t, i) {
	var n = i(25),
		s = Math.min;
	e.exports = function(e) {
		return e > 0 ? s(n(e), 9007199254740991) : 0
	}
}, function(e, t, i) {
	"use strict";
	var n = i(79)(!0);
	i(37)(String, "String", function(e) {
		this._t = String(e), this._i = 0
	}, function() {
		var e, t = this._t,
			i = this._i;
		return i >= t.length ? {
			value: void 0,
			done: !0
		} : (e = n(t, i), this._i += e.length, {
			value: e,
			done: !1
		})
	})
}, function(e, t, i) {
	e.exports = {
	default:
		i(66), __esModule: !0
	}
}, function(e, t, i) {
	e.exports = {
	default:
		i(67), __esModule: !0
	}
}, function(e, t, i) {
	i(83), i(82), i(84), i(85), e.exports = i(0).Symbol
}, function(e, t, i) {
	i(63), i(86), e.exports = i(27).f("iterator")
}, function(e, t) {
	e.exports = function() {}
}, function(e, t, i) {
	var n = i(5),
		s = i(62),
		a = i(80);
	e.exports = function(e) {
		return function(t, i, r) {
			var o, l = n(t),
				c = s(l.length),
				d = a(r, c);
			if (e && i != i) {
				for (; c > d;) if ((o = l[d++]) != o) return !0
			} else for (; c > d; d++) if ((e || d in l) && l[d] === i) return e || d || 0;
			return !e && -1
		}
	}
}, function(e, t, i) {
	var n = i(16),
		s = i(39),
		a = i(21);
	e.exports = function(e) {
		var t = n(e),
			i = s.f;
		if (i) for (var r, o = i(e), l = a.f, c = 0; o.length > c;) l.call(e, r = o[c++]) && t.push(r);
		return t
	}
}, function(e, t, i) {
	var n = i(2).document;
	e.exports = n && n.documentElement
}, function(e, t, i) {
	var n = i(36);
	e.exports = Object("z").propertyIsEnumerable(0) ? Object : function(e) {
		return "String" == n(e) ? e.split("") : Object(e)
	}
}, function(e, t, i) {
	var n = i(36);
	e.exports = Array.isArray ||
	function(e) {
		return "Array" == n(e)
	}
}, function(e, t, i) {
	"use strict";
	var n = i(28),
		s = i(13),
		a = i(22),
		r = {};
	i(8)(r, i(7)("iterator"), function() {
		return this
	}), e.exports = function(e, t, i) {
		e.prototype = n(r, {
			next: s(1, i)
		}), a(e, t + " Iterator")
	}
}, function(e, t) {
	e.exports = function(e, t) {
		return {
			value: t,
			done: !! e
		}
	}
}, function(e, t, i) {
	var n = i(15)("meta"),
		s = i(10),
		a = i(4),
		r = i(6).f,
		o = 0,
		l = Object.isExtensible ||
	function() {
		return !0
	}, c = !i(11)(function() {
		return l(Object.preventExtensions({}))
	}), d = function(e) {
		r(e, n, {
			value: {
				i: "O" + ++o,
				w: {}
			}
		})
	}, u = function(e, t) {
		if (!s(e)) return "symbol" == typeof e ? e : ("string" == typeof e ? "S" : "P") + e;
		if (!a(e, n)) {
			if (!l(e)) return "F";
			if (!t) return "E";
			d(e)
		}
		return e[n].i
	}, h = function(e, t) {
		if (!a(e, n)) {
			if (!l(e)) return !0;
			if (!t) return !1;
			d(e)
		}
		return e[n].w
	}, p = function(e) {
		return c && f.NEED && l(e) && !a(e, n) && d(e), e
	}, f = e.exports = {
		KEY: n,
		NEED: !1,
		fastKey: u,
		getWeak: h,
		onFreeze: p
	}
}, function(e, t, i) {
	var n = i(5),
		s = i(38).f,
		a = {}.toString,
		r = "object" == typeof window && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [],
		o = function(e) {
			try {
				return s(e)
			} catch (e) {
				return r.slice()
			}
		};
	e.exports.f = function(e) {
		return r && "[object Window]" == a.call(e) ? o(e) : s(n(e))
	}
}, function(e, t, i) {
	var n = i(4),
		s = i(42),
		a = i(23)("IE_PROTO"),
		r = Object.prototype;
	e.exports = Object.getPrototypeOf ||
	function(e) {
		return e = s(e), n(e, a) ? e[a] : "function" == typeof e.constructor && e instanceof e.constructor ? e.constructor.prototype : e instanceof Object ? r : null
	}
}, function(e, t, i) {
	var n = i(25),
		s = i(19);
	e.exports = function(e) {
		return function(t, i) {
			var a, r, o = String(s(t)),
				l = n(i),
				c = o.length;
			return l < 0 || l >= c ? e ? "" : void 0 : (a = o.charCodeAt(l), a < 55296 || a > 56319 || l + 1 === c || (r = o.charCodeAt(l + 1)) < 56320 || r > 57343 ? e ? o.charAt(l) : a : e ? o.slice(l, l + 2) : r - 56320 + (a - 55296 << 10) + 65536)
		}
	}
}, function(e, t, i) {
	var n = i(25),
		s = Math.max,
		a = Math.min;
	e.exports = function(e, t) {
		return e = n(e), e < 0 ? s(e + t, 0) : a(e, t)
	}
}, function(e, t, i) {
	"use strict";
	var n = i(68),
		s = i(75),
		a = i(17),
		r = i(5);
	e.exports = i(37)(Array, "Array", function(e, t) {
		this._t = r(e), this._i = 0, this._k = t
	}, function() {
		var e = this._t,
			t = this._k,
			i = this._i++;
		return !e || i >= e.length ? (this._t = void 0, s(1)) : "keys" == t ? s(0, i) : "values" == t ? s(0, e[i]) : s(0, [i, e[i]])
	}, "values"), a.Arguments = a.Array, n("keys"), n("values"), n("entries")
}, function(e, t) {}, function(e, t, i) {
	"use strict";
	var n = i(2),
		s = i(4),
		a = i(3),
		r = i(9),
		o = i(41),
		l = i(76).KEY,
		c = i(11),
		d = i(24),
		u = i(22),
		h = i(15),
		p = i(7),
		f = i(27),
		m = i(26),
		v = i(70),
		g = i(73),
		b = i(12),
		y = i(10),
		w = i(5),
		x = i(18),
		S = i(13),
		T = i(28),
		E = i(77),
		C = i(44),
		k = i(6),
		P = i(16),
		z = C.f,
		M = k.f,
		_ = E.f,
		I = n.Symbol,
		D = n.JSON,
		L = D && D.stringify,
		$ = p("_hidden"),
		A = p("toPrimitive"),
		X = {}.propertyIsEnumerable,
		Y = d("symbol-registry"),
		O = d("symbols"),
		H = d("op-symbols"),
		N = Object.prototype,
		B = "function" == typeof I,
		R = n.QObject,
		V = !R || !R.prototype || !R.prototype.findChild,
		W = a && c(function() {
			return 7 != T(M({}, "a", {
				get: function() {
					return M(this, "a", {
						value: 7
					}).a
				}
			})).a
		}) ?
	function(e, t, i) {
		var n = z(N, t);
		n && delete N[t], M(e, t, i), n && e !== N && M(N, t, n)
	} : M, j = function(e) {
		var t = O[e] = T(I.prototype);
		return t._k = e, t
	}, F = B && "symbol" == typeof I.iterator ?
	function(e) {
		return "symbol" == typeof e
	} : function(e) {
		return e instanceof I
	}, G = function(e, t, i) {
		return e === N && G(H, t, i), b(e), t = x(t, !0), b(i), s(O, t) ? (i.enumerable ? (s(e, $) && e[$][t] && (e[$][t] = !1), i = T(i, {
			enumerable: S(0, !1)
		})) : (s(e, $) || M(e, $, S(1, {})), e[$][t] = !0), W(e, t, i)) : M(e, t, i)
	}, q = function(e, t) {
		b(e);
		for (var i, n = v(t = w(t)), s = 0, a = n.length; a > s;) G(e, i = n[s++], t[i]);
		return e
	}, U = function(e, t) {
		return void 0 === t ? T(e) : q(T(e), t)
	}, J = function(e) {
		var t = X.call(this, e = x(e, !0));
		return !(this === N && s(O, e) && !s(H, e)) && (!(t || !s(this, e) || !s(O, e) || s(this, $) && this[$][e]) || t)
	}, K = function(e, t) {
		if (e = w(e), t = x(t, !0), e !== N || !s(O, t) || s(H, t)) {
			var i = z(e, t);
			return !i || !s(O, t) || s(e, $) && e[$][t] || (i.enumerable = !0), i
		}
	}, Q = function(e) {
		for (var t, i = _(w(e)), n = [], a = 0; i.length > a;) s(O, t = i[a++]) || t == $ || t == l || n.push(t);
		return n
	}, Z = function(e) {
		for (var t, i = e === N, n = _(i ? H : w(e)), a = [], r = 0; n.length > r;)!s(O, t = n[r++]) || i && !s(N, t) || a.push(O[t]);
		return a
	};
	B || (I = function() {
		if (this instanceof I) throw TypeError("Symbol is not a constructor!");
		var e = h(arguments.length > 0 ? arguments[0] : void 0),
			t = function(i) {
				this === N && t.call(H, i), s(this, $) && s(this[$], e) && (this[$][e] = !1), W(this, e, S(1, i))
			};
		return a && V && W(N, e, {
			configurable: !0,
			set: t
		}), j(e)
	}, o(I.prototype, "toString", function() {
		return this._k
	}), C.f = K, k.f = G, i(38).f = E.f = Q, i(21).f = J, i(39).f = Z, a && !i(14) && o(N, "propertyIsEnumerable", J, !0), f.f = function(e) {
		return j(p(e))
	}), r(r.G + r.W + r.F * !B, {
		Symbol: I
	});
	for (var ee = "hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","), te = 0; ee.length > te;) p(ee[te++]);
	for (var ie = P(p.store), ne = 0; ie.length > ne;) m(ie[ne++]);
	r(r.S + r.F * !B, "Symbol", {
		for :function(e) {
			return s(Y, e += "") ? Y[e] : Y[e] = I(e)
		}, keyFor: function(e) {
			if (!F(e)) throw TypeError(e + " is not a symbol!");
			for (var t in Y) if (Y[t] === e) return t
		},
		useSetter: function() {
			V = !0
		},
		useSimple: function() {
			V = !1
		}
	}), r(r.S + r.F * !B, "Object", {
		create: U,
		defineProperty: G,
		defineProperties: q,
		getOwnPropertyDescriptor: K,
		getOwnPropertyNames: Q,
		getOwnPropertySymbols: Z
	}), D && r(r.S + r.F * (!B || c(function() {
		var e = I();
		return "[null]" != L([e]) || "{}" != L({
			a: e
		}) || "{}" != L(Object(e))
	})), "JSON", {
		stringify: function(e) {
			for (var t, i, n = [e], s = 1; arguments.length > s;) n.push(arguments[s++]);
			if (i = t = n[1], (y(t) || void 0 !== e) && !F(e)) return g(t) || (t = function(e, t) {
				if ("function" == typeof i && (t = i.call(this, e, t)), !F(t)) return t
			}), n[1] = t, L.apply(D, n)
		}
	}), I.prototype[A] || i(8)(I.prototype, A, I.prototype.valueOf), u(I, "Symbol"), u(Math, "Math", !0), u(n.JSON, "JSON", !0)
}, function(e, t, i) {
	i(26)("asyncIterator")
}, function(e, t, i) {
	i(26)("observable")
}, function(e, t, i) {
	i(81);
	for (var n = i(2), s = i(8), a = i(17), r = i(7)("toStringTag"), o = "CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","), l = 0; l < o.length; l++) {
		var c = o[l],
			d = n[c],
			u = d && d.prototype;
		u && !u[r] && s(u, r, c), a[c] = a.Array
	}
}, function(e, t, i) {
	e.exports = {
	default:
		i(95), __esModule: !0
	}
}, function(e, t, i) {
	"use strict";
	(function(t) {
		var n = i(30),
			s = {
				init: function() {
					window.clientType = this.getClientType(), window.postLogData = this.postData, this.initDom(), this.closePop()
				},
				initDom: function() {
					var e = this;
					e.$weibo = t(".icon-weibo"), e.$qzone = t(".icon-qq"), e.$weixin = t(".icon-weixin"), e.$douban = t(".icon-douban"), e.$sharelist = t(".share-block"), e.$sharelist.length && e.$sharelist.find("i").each(function(i, n) {
						var s = t(this).prop("class"),
							a = t(this).parent().attr("onclick") ? t(this).parent().attr("onclick") : "";
						switch (s) {
						case "icons icon-weibo":
							e.$weibo.parent().attr({
								onclick: a + ";window.postLogData();"
							});
							break;
						case "icons icon-qq":
							e.$qzone.parent().attr({
								onclick: a + ";window.postLogData();"
							});
							break;
						case "icons icon-weixin":
							e.$weixin.parent().attr({
								onclick: a + ";window.postLogData();"
							});
							break;
						case "icons icon-douban":
							e.$douban.parent().attr({
								onclick: a + ";window.postLogData();"
							})
						}
					})
				},
				closePop: function() {
					t("body").on("click", function(e) {
						t(".J_share_dropdown").hide()
					})
				},
				postData: function() {
					t.ajax({
						type: "get",
						url: "//zhiyou.ztm.me/share/log",
						data: {
							client_type: window.clientType,
							user_id: n.getCookie("smzdm_id") ? n.getCookie("smzdm_id") : "无",
							aid: t("#data-aid").length > 0 ? t("#data-aid").val() : "无",
							cid: t("#data-cid").length > 0 ? t("#data-cid").val() : "无",
							atp: t("#data-atp").length > 0 ? t("#data-atp").val() : "无",
							tagID: t("#data-tagid").length > 0 ? t("#data-tagid").val() : "无",
							sourcePage: document.referrer ? document.referrer : "无"
						},
						dataType: "jsonp",
						jsonp: "callback",
						success: function(e) {},
						error: function() {}
					})
				},
				getClientType: function() {
					var e = navigator.userAgent;
					return /smzdmapp/i.test(e) ? /(Android)/i.test(e) ? "android" : "iphone" : /(Android)|i(Phone|Pad|Pod|OS)/i.test(e) ? "WAP" : "PC"
				}
			};
		e.exports = s
	}).call(t, i(1))
}, function(e, t, i) {
	e.exports = {
	default:
		i(92), __esModule: !0
	}
}, function(e, t, i) {
	e.exports = {
	default:
		i(93), __esModule: !0
	}
}, function(e, t, i) {
	e.exports = {
	default:
		i(94), __esModule: !0
	}
}, function(e, t, i) {
	i(96);
	var n = i(0).Object;
	e.exports = function(e, t) {
		return n.create(e, t)
	}
}, function(e, t, i) {
	i(97);
	var n = i(0).Object;
	e.exports = function(e, t) {
		return n.defineProperties(e, t)
	}
}, function(e, t, i) {
	i(98);
	var n = i(0).Object;
	e.exports = function(e, t) {
		return n.getOwnPropertyDescriptor(e, t)
	}
}, function(e, t, i) {
	i(99), e.exports = i(0).Object.keys
}, function(e, t, i) {
	var n = i(9);
	n(n.S, "Object", {
		create: i(28)
	})
}, function(e, t, i) {
	var n = i(9);
	n(n.S + n.F * !i(3), "Object", {
		defineProperties: i(43)
	})
}, function(e, t, i) {
	var n = i(5),
		s = i(44).f;
	i(46)("getOwnPropertyDescriptor", function() {
		return function(e, t) {
			return s(n(e), t)
		}
	})
}, function(e, t, i) {
	var n = i(42),
		s = i(16);
	i(46)("keys", function() {
		return function(e) {
			return s(n(e))
		}
	})
}, function(e, t, i) {
	var n; /*! iScroll v5.2.0 ~ (c) 2008-2016 Matteo Spinelli ~ http://cubiq.org/license */
	!
	function(s, a, r) {
		function o(e, t) {
			this.wrapper = "string" == typeof e ? a.querySelector(e) : e, this.scroller = this.wrapper.children[0], this.scrollerStyle = this.scroller.style, this.options = {
				resizeScrollbars: !0,
				mouseWheelSpeed: 20,
				snapThreshold: .334,
				disablePointer: !u.hasPointer,
				disableTouch: u.hasPointer || !u.hasTouch,
				disableMouse: u.hasPointer || u.hasTouch,
				startX: 0,
				startY: 0,
				scrollY: !0,
				directionLockThreshold: 5,
				momentum: !0,
				bounce: !0,
				bounceTime: 600,
				bounceEasing: "",
				preventDefault: !0,
				preventDefaultException: {
					tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/
				},
				HWCompositing: !0,
				useTransition: !0,
				useTransform: !0,
				bindToWrapper: void 0 === s.onmousedown
			};
			for (var i in t) this.options[i] = t[i];
			this.translateZ = this.options.HWCompositing && u.hasPerspective ? " translateZ(0)" : "", this.options.useTransition = u.hasTransition && this.options.useTransition, this.options.useTransform = u.hasTransform && this.options.useTransform, this.options.eventPassthrough = !0 === this.options.eventPassthrough ? "vertical" : this.options.eventPassthrough, this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault, this.options.scrollY = "vertical" != this.options.eventPassthrough && this.options.scrollY, this.options.scrollX = "horizontal" != this.options.eventPassthrough && this.options.scrollX, this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough, this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold, this.options.bounceEasing = "string" == typeof this.options.bounceEasing ? u.ease[this.options.bounceEasing] || u.ease.circular : this.options.bounceEasing, this.options.resizePolling = void 0 === this.options.resizePolling ? 60 : this.options.resizePolling, !0 === this.options.tap && (this.options.tap = "tap"), "scale" == this.options.shrinkScrollbars && (this.options.useTransition = !1), this.options.invertWheelDirection = this.options.invertWheelDirection ? -1 : 1, this.x = 0, this.y = 0, this.directionX = 0, this.directionY = 0, this._events = {}, this._init(), this.refresh(), this.scrollTo(this.options.startX, this.options.startY), this.enable()
		}
		function l(e, t, i) {
			var n = a.createElement("div"),
				s = a.createElement("div");
			return !0 === i && (n.style.cssText = "position:absolute;z-index:9999", s.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px"), s.className = "iScrollIndicator", "h" == e ? (!0 === i && (n.style.cssText += ";height:7px;left:2px;right:2px;bottom:0", s.style.height = "100%"), n.className = "iScrollHorizontalScrollbar") : (!0 === i && (n.style.cssText += ";width:7px;bottom:2px;top:2px;right:1px", s.style.width = "100%"), n.className = "iScrollVerticalScrollbar"), n.style.cssText += ";overflow:hidden", t || (n.style.pointerEvents = "none"), n.appendChild(s), n
		}
		function c(e, t) {
			this.wrapper = "string" == typeof t.el ? a.querySelector(t.el) : t.el, this.wrapperStyle = this.wrapper.style, this.indicator = this.wrapper.children[0], this.indicatorStyle = this.indicator.style, this.scroller = e, this.options = {
				listenX: !0,
				listenY: !0,
				interactive: !1,
				resize: !0,
				defaultScrollbars: !1,
				shrink: !1,
				fade: !1,
				speedRatioX: 0,
				speedRatioY: 0
			};
			for (var i in t) this.options[i] = t[i];
			if (this.sizeRatioX = 1, this.sizeRatioY = 1, this.maxPosX = 0, this.maxPosY = 0, this.options.interactive && (this.options.disableTouch || (u.addEvent(this.indicator, "touchstart", this), u.addEvent(s, "touchend", this)), this.options.disablePointer || (u.addEvent(this.indicator, u.prefixPointerEvent("pointerdown"), this), u.addEvent(s, u.prefixPointerEvent("pointerup"), this)), this.options.disableMouse || (u.addEvent(this.indicator, "mousedown", this), u.addEvent(s, "mouseup", this))), this.options.fade) {
				this.wrapperStyle[u.style.transform] = this.scroller.translateZ;
				var n = u.style.transitionDuration;
				this.wrapperStyle[n] = u.isBadAndroid ? "0.0001ms" : "0ms";
				var r = this;
				u.isBadAndroid && d(function() {
					"0.0001ms" === r.wrapperStyle[n] && (r.wrapperStyle[n] = "0s")
				}), this.wrapperStyle.opacity = "0"
			}
		}
		var d = s.requestAnimationFrame || s.webkitRequestAnimationFrame || s.mozRequestAnimationFrame || s.oRequestAnimationFrame || s.msRequestAnimationFrame ||
		function(e) {
			s.setTimeout(e, 1e3 / 60)
		}, u = function() {
			function e(e) {
				return !1 !== n && ("" === n ? e : n + e.charAt(0).toUpperCase() + e.substr(1))
			}
			var t = {},
				i = a.createElement("div").style,
				n = function() {
					for (var e = ["t", "webkitT", "MozT", "msT", "OT"], t = 0, n = e.length; t < n; t++) if (e[t] + "ransform" in i) return e[t].substr(0, e[t].length - 1);
					return !1
				}();
			t.getTime = Date.now ||
			function() {
				return (new Date).getTime()
			}, t.extend = function(e, t) {
				for (var i in t) e[i] = t[i]
			}, t.addEvent = function(e, t, i, n) {
				e.addEventListener(t, i, !! n)
			}, t.removeEvent = function(e, t, i, n) {
				e.removeEventListener(t, i, !! n)
			}, t.prefixPointerEvent = function(e) {
				return s.MSPointerEvent ? "MSPointer" + e.charAt(7).toUpperCase() + e.substr(8) : e
			}, t.momentum = function(e, t, i, n, s, a) {
				var o, l, c = e - t,
					d = r.abs(c) / i;
				return a = void 0 === a ? 6e-4 : a, o = e + d * d / (2 * a) * (c < 0 ? -1 : 1), l = d / a, o < n ? (o = s ? n - s / 2.5 * (d / 8) : n, c = r.abs(o - e), l = c / d) : o > 0 && (o = s ? s / 2.5 * (d / 8) : 0, c = r.abs(e) + o, l = c / d), {
					destination: r.round(o),
					duration: l
				}
			};
			var o = e("transform");
			return t.extend(t, {
				hasTransform: !1 !== o,
				hasPerspective: e("perspective") in i,
				hasTouch: "ontouchstart" in s,
				hasPointer: !(!s.PointerEvent && !s.MSPointerEvent),
				hasTransition: e("transition") in i
			}), t.isBadAndroid = function() {
				var e = s.navigator.appVersion;
				if (/Android/.test(e) && !/Chrome\/\d/.test(e)) {
					var t = e.match(/Safari\/(\d+.\d)/);
					return !(t && "object" == typeof t && t.length >= 2) || parseFloat(t[1]) < 535.19
				}
				return !1
			}(), t.extend(t.style = {}, {
				transform: o,
				transitionTimingFunction: e("transitionTimingFunction"),
				transitionDuration: e("transitionDuration"),
				transitionDelay: e("transitionDelay"),
				transformOrigin: e("transformOrigin")
			}), t.hasClass = function(e, t) {
				return new RegExp("(^|\\s)" + t + "(\\s|$)").test(e.className)
			}, t.addClass = function(e, i) {
				if (!t.hasClass(e, i)) {
					var n = e.className.split(" ");
					n.push(i), e.className = n.join(" ")
				}
			}, t.removeClass = function(e, i) {
				if (t.hasClass(e, i)) {
					var n = new RegExp("(^|\\s)" + i + "(\\s|$)", "g");
					e.className = e.className.replace(n, " ")
				}
			}, t.offset = function(e) {
				for (var t = -e.offsetLeft, i = -e.offsetTop; e = e.offsetParent;) t -= e.offsetLeft, i -= e.offsetTop;
				return {
					left: t,
					top: i
				}
			}, t.preventDefaultException = function(e, t) {
				for (var i in t) if (t[i].test(e[i])) return !0;
				return !1
			}, t.extend(t.eventType = {}, {
				touchstart: 1,
				touchmove: 1,
				touchend: 1,
				mousedown: 2,
				mousemove: 2,
				mouseup: 2,
				pointerdown: 3,
				pointermove: 3,
				pointerup: 3,
				MSPointerDown: 3,
				MSPointerMove: 3,
				MSPointerUp: 3
			}), t.extend(t.ease = {}, {
				quadratic: {
					style: "cubic-bezier(0.25, 0.46, 0.45, 0.94)",
					fn: function(e) {
						return e * (2 - e)
					}
				},
				circular: {
					style: "cubic-bezier(0.1, 0.57, 0.1, 1)",
					fn: function(e) {
						return r.sqrt(1 - --e * e)
					}
				},
				back: {
					style: "cubic-bezier(0.175, 0.885, 0.32, 1.275)",
					fn: function(e) {
						return (e -= 1) * e * (5 * e + 4) + 1
					}
				},
				bounce: {
					style: "",
					fn: function(e) {
						return (e /= 1) < 1 / 2.75 ? 7.5625 * e * e : e < 2 / 2.75 ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : e < 2.5 / 2.75 ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375
					}
				},
				elastic: {
					style: "",
					fn: function(e) {
						return 0 === e ? 0 : 1 == e ? 1 : .4 * r.pow(2, -10 * e) * r.sin((e - .055) * (2 * r.PI) / .22) + 1
					}
				}
			}), t.tap = function(e, t) {
				var i = a.createEvent("Event");
				i.initEvent(t, !0, !0), i.pageX = e.pageX, i.pageY = e.pageY, e.target.dispatchEvent(i)
			}, t.click = function(e) {
				var t, i = e.target;
				/(SELECT|INPUT|TEXTAREA)/i.test(i.tagName) || (t = a.createEvent("MouseEvents"), t.initMouseEvent("click", !0, !0, e.view, 1, i.screenX, i.screenY, i.clientX, i.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, 0, null), t._constructed = !0, i.dispatchEvent(t))
			}, t
		}();
		o.prototype = {
			version: "5.2.0",
			_init: function() {
				this._initEvents(), (this.options.scrollbars || this.options.indicators) && this._initIndicators(), this.options.mouseWheel && this._initWheel(), this.options.snap && this._initSnap(), this.options.keyBindings && this._initKeys()
			},
			destroy: function() {
				this._initEvents(!0), clearTimeout(this.resizeTimeout), this.resizeTimeout = null, this._execEvent("destroy")
			},
			_transitionEnd: function(e) {
				e.target == this.scroller && this.isInTransition && (this._transitionTime(), this.resetPosition(this.options.bounceTime) || (this.isInTransition = !1, this._execEvent("scrollEnd")))
			},
			_start: function(e) {
				if (1 != u.eventType[e.type]) {
					if (0 !== (e.which ? e.button : e.button < 2 ? 0 : 4 == e.button ? 1 : 2)) return
				}
				if (this.enabled && (!this.initiated || u.eventType[e.type] === this.initiated)) {
					!this.options.preventDefault || u.isBadAndroid || u.preventDefaultException(e.target, this.options.preventDefaultException) || e.preventDefault();
					var t, i = e.touches ? e.touches[0] : e;
					this.initiated = u.eventType[e.type], this.moved = !1, this.distX = 0, this.distY = 0, this.directionX = 0, this.directionY = 0, this.directionLocked = 0, this.startTime = u.getTime(), this.options.useTransition && this.isInTransition ? (this._transitionTime(), this.isInTransition = !1, t = this.getComputedPosition(), this._translate(r.round(t.x), r.round(t.y)), this._execEvent("scrollEnd")) : !this.options.useTransition && this.isAnimating && (this.isAnimating = !1, this._execEvent("scrollEnd")), this.startX = this.x, this.startY = this.y, this.absStartX = this.x, this.absStartY = this.y, this.pointX = i.pageX, this.pointY = i.pageY, this._execEvent("beforeScrollStart")
				}
			},
			_move: function(e) {
				if (this.enabled && u.eventType[e.type] === this.initiated) {
					this.options.preventDefault && e.preventDefault();
					var t, i, n, s, a = e.touches ? e.touches[0] : e,
						o = a.pageX - this.pointX,
						l = a.pageY - this.pointY,
						c = u.getTime();
					if (this.pointX = a.pageX, this.pointY = a.pageY, this.distX += o, this.distY += l, n = r.abs(this.distX), s = r.abs(this.distY), !(c - this.endTime > 300 && n < 10 && s < 10)) {
						if (this.directionLocked || this.options.freeScroll || (n > s + this.options.directionLockThreshold ? this.directionLocked = "h" : s >= n + this.options.directionLockThreshold ? this.directionLocked = "v" : this.directionLocked = "n"), "h" == this.directionLocked) {
							if ("vertical" == this.options.eventPassthrough) e.preventDefault();
							else if ("horizontal" == this.options.eventPassthrough) return void(this.initiated = !1);
							l = 0
						} else if ("v" == this.directionLocked) {
							if ("horizontal" == this.options.eventPassthrough) e.preventDefault();
							else if ("vertical" == this.options.eventPassthrough) return void(this.initiated = !1);
							o = 0
						}
						o = this.hasHorizontalScroll ? o : 0, l = this.hasVerticalScroll ? l : 0, t = this.x + o, i = this.y + l, (t > 0 || t < this.maxScrollX) && (t = this.options.bounce ? this.x + o / 3 : t > 0 ? 0 : this.maxScrollX), (i > 0 || i < this.maxScrollY) && (i = this.options.bounce ? this.y + l / 3 : i > 0 ? 0 : this.maxScrollY), this.directionX = o > 0 ? -1 : o < 0 ? 1 : 0, this.directionY = l > 0 ? -1 : l < 0 ? 1 : 0, this.moved || this._execEvent("scrollStart"), this.moved = !0, this._translate(t, i), c - this.startTime > 300 && (this.startTime = c, this.startX = this.x, this.startY = this.y)
					}
				}
			},
			_end: function(e) {
				if (this.enabled && u.eventType[e.type] === this.initiated) {
					this.options.preventDefault && !u.preventDefaultException(e.target, this.options.preventDefaultException) && e.preventDefault();
					var t, i, n = (e.changedTouches && e.changedTouches[0], u.getTime() - this.startTime),
						s = r.round(this.x),
						a = r.round(this.y),
						o = r.abs(s - this.startX),
						l = r.abs(a - this.startY),
						c = 0,
						d = "";
					if (this.isInTransition = 0, this.initiated = 0, this.endTime = u.getTime(), !this.resetPosition(this.options.bounceTime)) {
						if (this.scrollTo(s, a), !this.moved) return this.options.tap && u.tap(e, this.options.tap), this.options.click && u.click(e), void this._execEvent("scrollCancel");
						if (this._events.flick && n < 200 && o < 100 && l < 100) return void this._execEvent("flick");
						if (this.options.momentum && n < 300 && (t = this.hasHorizontalScroll ? u.momentum(this.x, this.startX, n, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : {
							destination: s,
							duration: 0
						}, i = this.hasVerticalScroll ? u.momentum(this.y, this.startY, n, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : {
							destination: a,
							duration: 0
						}, s = t.destination, a = i.destination, c = r.max(t.duration, i.duration), this.isInTransition = 1), this.options.snap) {
							var h = this._nearestSnap(s, a);
							this.currentPage = h, c = this.options.snapSpeed || r.max(r.max(r.min(r.abs(s - h.x), 1e3), r.min(r.abs(a - h.y), 1e3)), 300), s = h.x, a = h.y, this.directionX = 0, this.directionY = 0, d = this.options.bounceEasing
						}
						if (s != this.x || a != this.y) return (s > 0 || s < this.maxScrollX || a > 0 || a < this.maxScrollY) && (d = u.ease.quadratic), void this.scrollTo(s, a, c, d);
						this._execEvent("scrollEnd")
					}
				}
			},
			_resize: function() {
				var e = this;
				clearTimeout(this.resizeTimeout), this.resizeTimeout = setTimeout(function() {
					e.refresh()
				}, this.options.resizePolling)
			},
			resetPosition: function(e) {
				var t = this.x,
					i = this.y;
				return e = e || 0, !this.hasHorizontalScroll || this.x > 0 ? t = 0 : this.x < this.maxScrollX && (t = this.maxScrollX), !this.hasVerticalScroll || this.y > 0 ? i = 0 : this.y < this.maxScrollY && (i = this.maxScrollY), (t != this.x || i != this.y) && (this.scrollTo(t, i, e, this.options.bounceEasing), !0)
			},
			disable: function() {
				this.enabled = !1
			},
			enable: function() {
				this.enabled = !0
			},
			refresh: function() {
				this.wrapper.offsetHeight;
				this.wrapperWidth = this.wrapper.clientWidth, this.wrapperHeight = this.wrapper.clientHeight, this.scrollerWidth = this.scroller.offsetWidth, this.scrollerHeight = this.scroller.offsetHeight, this.maxScrollX = this.wrapperWidth - this.scrollerWidth, this.maxScrollY = this.wrapperHeight - this.scrollerHeight, this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0, this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0, this.hasHorizontalScroll || (this.maxScrollX = 0, this.scrollerWidth = this.wrapperWidth), this.hasVerticalScroll || (this.maxScrollY = 0, this.scrollerHeight = this.wrapperHeight), this.endTime = 0, this.directionX = 0, this.directionY = 0, this.wrapperOffset = u.offset(this.wrapper), this._execEvent("refresh"), this.resetPosition()
			},
			on: function(e, t) {
				this._events[e] || (this._events[e] = []), this._events[e].push(t)
			},
			off: function(e, t) {
				if (this._events[e]) {
					var i = this._events[e].indexOf(t);
					i > -1 && this._events[e].splice(i, 1)
				}
			},
			_execEvent: function(e) {
				if (this._events[e]) {
					var t = 0,
						i = this._events[e].length;
					if (i) for (; t < i; t++) this._events[e][t].apply(this, [].slice.call(arguments, 1))
				}
			},
			scrollBy: function(e, t, i, n) {
				e = this.x + e, t = this.y + t, i = i || 0, this.scrollTo(e, t, i, n)
			},
			scrollTo: function(e, t, i, n) {
				n = n || u.ease.circular, this.isInTransition = this.options.useTransition && i > 0;
				var s = this.options.useTransition && n.style;
				!i || s ? (s && (this._transitionTimingFunction(n.style), this._transitionTime(i)), this._translate(e, t)) : this._animate(e, t, i, n.fn)
			},
			scrollToElement: function(e, t, i, n, s) {
				if (e = e.nodeType ? e : this.scroller.querySelector(e)) {
					var a = u.offset(e);
					a.left -= this.wrapperOffset.left, a.top -= this.wrapperOffset.top, !0 === i && (i = r.round(e.offsetWidth / 2 - this.wrapper.offsetWidth / 2)), !0 === n && (n = r.round(e.offsetHeight / 2 - this.wrapper.offsetHeight / 2)), a.left -= i || 0, a.top -= n || 0, a.left = a.left > 0 ? 0 : a.left < this.maxScrollX ? this.maxScrollX : a.left, a.top = a.top > 0 ? 0 : a.top < this.maxScrollY ? this.maxScrollY : a.top, t = void 0 === t || null === t || "auto" === t ? r.max(r.abs(this.x - a.left), r.abs(this.y - a.top)) : t, this.scrollTo(a.left, a.top, t, s)
				}
			},
			_transitionTime: function(e) {
				e = e || 0;
				var t = u.style.transitionDuration;
				if (this.scrollerStyle[t] = e + "ms", !e && u.isBadAndroid) {
					this.scrollerStyle[t] = "0.0001ms";
					var i = this;
					d(function() {
						"0.0001ms" === i.scrollerStyle[t] && (i.scrollerStyle[t] = "0s")
					})
				}
				if (this.indicators) for (var n = this.indicators.length; n--;) this.indicators[n].transitionTime(e)
			},
			_transitionTimingFunction: function(e) {
				if (this.scrollerStyle[u.style.transitionTimingFunction] = e, this.indicators) for (var t = this.indicators.length; t--;) this.indicators[t].transitionTimingFunction(e)
			},
			_translate: function(e, t) {
				if (this.options.useTransform ? this.scrollerStyle[u.style.transform] = "translate(" + e + "px," + t + "px)" + this.translateZ : (e = r.round(e), t = r.round(t), this.scrollerStyle.left = e + "px", this.scrollerStyle.top = t + "px"), this.x = e, this.y = t, this.indicators) for (var i = this.indicators.length; i--;) this.indicators[i].updatePosition()
			},
			_initEvents: function(e) {
				var t = e ? u.removeEvent : u.addEvent,
					i = this.options.bindToWrapper ? this.wrapper : s;
				t(s, "orientationchange", this), t(s, "resize", this), this.options.click && t(this.wrapper, "click", this, !0), this.options.disableMouse || (t(this.wrapper, "mousedown", this), t(i, "mousemove", this), t(i, "mousecancel", this), t(i, "mouseup", this)), u.hasPointer && !this.options.disablePointer && (t(this.wrapper, u.prefixPointerEvent("pointerdown"), this), t(i, u.prefixPointerEvent("pointermove"), this), t(i, u.prefixPointerEvent("pointercancel"), this), t(i, u.prefixPointerEvent("pointerup"), this)), u.hasTouch && !this.options.disableTouch && (t(this.wrapper, "touchstart", this), t(i, "touchmove", this), t(i, "touchcancel", this), t(i, "touchend", this)), t(this.scroller, "transitionend", this), t(this.scroller, "webkitTransitionEnd", this), t(this.scroller, "oTransitionEnd", this), t(this.scroller, "MSTransitionEnd", this)
			},
			getComputedPosition: function() {
				var e, t, i = s.getComputedStyle(this.scroller, null);
				return this.options.useTransform ? (i = i[u.style.transform].split(")")[0].split(", "), e = +(i[12] || i[4]), t = +(i[13] || i[5])) : (e = +i.left.replace(/[^-\d.]/g, ""), t = +i.top.replace(/[^-\d.]/g, "")), {
					x: e,
					y: t
				}
			},
			_initIndicators: function() {
				function e(e) {
					if (a.indicators) for (var t = a.indicators.length; t--;) e.call(a.indicators[t])
				}
				var t, i = this.options.interactiveScrollbars,
					n = "string" != typeof this.options.scrollbars,
					s = [],
					a = this;
				this.indicators = [], this.options.scrollbars && (this.options.scrollY && (t = {
					el: l("v", i, this.options.scrollbars),
					interactive: i,
					defaultScrollbars: !0,
					customStyle: n,
					resize: this.options.resizeScrollbars,
					shrink: this.options.shrinkScrollbars,
					fade: this.options.fadeScrollbars,
					listenX: !1
				}, this.wrapper.appendChild(t.el), s.push(t)), this.options.scrollX && (t = {
					el: l("h", i, this.options.scrollbars),
					interactive: i,
					defaultScrollbars: !0,
					customStyle: n,
					resize: this.options.resizeScrollbars,
					shrink: this.options.shrinkScrollbars,
					fade: this.options.fadeScrollbars,
					listenY: !1
				}, this.wrapper.appendChild(t.el), s.push(t))), this.options.indicators && (s = s.concat(this.options.indicators));
				for (var r = s.length; r--;) this.indicators.push(new c(this, s[r]));
				this.options.fadeScrollbars && (this.on("scrollEnd", function() {
					e(function() {
						this.fade()
					})
				}), this.on("scrollCancel", function() {
					e(function() {
						this.fade()
					})
				}), this.on("scrollStart", function() {
					e(function() {
						this.fade(1)
					})
				}), this.on("beforeScrollStart", function() {
					e(function() {
						this.fade(1, !0)
					})
				})), this.on("refresh", function() {
					e(function() {
						this.refresh()
					})
				}), this.on("destroy", function() {
					e(function() {
						this.destroy()
					}), delete this.indicators
				})
			},
			_initWheel: function() {
				u.addEvent(this.wrapper, "wheel", this), u.addEvent(this.wrapper, "mousewheel", this), u.addEvent(this.wrapper, "DOMMouseScroll", this), this.on("destroy", function() {
					clearTimeout(this.wheelTimeout), this.wheelTimeout = null, u.removeEvent(this.wrapper, "wheel", this), u.removeEvent(this.wrapper, "mousewheel", this), u.removeEvent(this.wrapper, "DOMMouseScroll", this)
				})
			},
			_wheel: function(e) {
				if (this.enabled) {
					e.preventDefault();
					var t, i, n, s, a = this;
					if (void 0 === this.wheelTimeout && a._execEvent("scrollStart"), clearTimeout(this.wheelTimeout), this.wheelTimeout = setTimeout(function() {
						a.options.snap || a._execEvent("scrollEnd"), a.wheelTimeout = void 0
					}, 400), "deltaX" in e) 1 === e.deltaMode ? (t = -e.deltaX * this.options.mouseWheelSpeed, i = -e.deltaY * this.options.mouseWheelSpeed) : (t = -e.deltaX, i = -e.deltaY);
					else if ("wheelDeltaX" in e) t = e.wheelDeltaX / 120 * this.options.mouseWheelSpeed, i = e.wheelDeltaY / 120 * this.options.mouseWheelSpeed;
					else if ("wheelDelta" in e) t = i = e.wheelDelta / 120 * this.options.mouseWheelSpeed;
					else {
						if (!("detail" in e)) return;
						t = i = -e.detail / 3 * this.options.mouseWheelSpeed
					}
					if (t *= this.options.invertWheelDirection, i *= this.options.invertWheelDirection, this.hasVerticalScroll || (t = i, i = 0), this.options.snap) return n = this.currentPage.pageX, s = this.currentPage.pageY, t > 0 ? n-- : t < 0 && n++, i > 0 ? s-- : i < 0 && s++, void this.goToPage(n, s);
					n = this.x + r.round(this.hasHorizontalScroll ? t : 0), s = this.y + r.round(this.hasVerticalScroll ? i : 0), this.directionX = t > 0 ? -1 : t < 0 ? 1 : 0, this.directionY = i > 0 ? -1 : i < 0 ? 1 : 0, n > 0 ? n = 0 : n < this.maxScrollX && (n = this.maxScrollX), s > 0 ? s = 0 : s < this.maxScrollY && (s = this.maxScrollY), this.scrollTo(n, s, 0)
				}
			},
			_initSnap: function() {
				this.currentPage = {}, "string" == typeof this.options.snap && (this.options.snap = this.scroller.querySelectorAll(this.options.snap)), this.on("refresh", function() {
					var e, t, i, n, s, a, o = 0,
						l = 0,
						c = 0,
						d = this.options.snapStepX || this.wrapperWidth,
						u = this.options.snapStepY || this.wrapperHeight;
					if (this.pages = [], this.wrapperWidth && this.wrapperHeight && this.scrollerWidth && this.scrollerHeight) {
						if (!0 === this.options.snap) for (i = r.round(d / 2), n = r.round(u / 2); c > -this.scrollerWidth;) {
							for (this.pages[o] = [], e = 0, s = 0; s > -this.scrollerHeight;) this.pages[o][e] = {
								x: r.max(c, this.maxScrollX),
								y: r.max(s, this.maxScrollY),
								width: d,
								height: u,
								cx: c - i,
								cy: s - n
							}, s -= u, e++;
							c -= d, o++
						} else for (a = this.options.snap, e = a.length, t = -1; o < e; o++)(0 === o || a[o].offsetLeft <= a[o - 1].offsetLeft) && (l = 0, t++), this.pages[l] || (this.pages[l] = []), c = r.max(-a[o].offsetLeft, this.maxScrollX), s = r.max(-a[o].offsetTop, this.maxScrollY), i = c - r.round(a[o].offsetWidth / 2), n = s - r.round(a[o].offsetHeight / 2), this.pages[l][t] = {
							x: c,
							y: s,
							width: a[o].offsetWidth,
							height: a[o].offsetHeight,
							cx: i,
							cy: n
						}, c > this.maxScrollX && l++;
						this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0), this.options.snapThreshold % 1 == 0 ? (this.snapThresholdX = this.options.snapThreshold, this.snapThresholdY = this.options.snapThreshold) : (this.snapThresholdX = r.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width * this.options.snapThreshold), this.snapThresholdY = r.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height * this.options.snapThreshold))
					}
				}), this.on("flick", function() {
					var e = this.options.snapSpeed || r.max(r.max(r.min(r.abs(this.x - this.startX), 1e3), r.min(r.abs(this.y - this.startY), 1e3)), 300);
					this.goToPage(this.currentPage.pageX + this.directionX, this.currentPage.pageY + this.directionY, e)
				})
			},
			_nearestSnap: function(e, t) {
				if (!this.pages.length) return {
					x: 0,
					y: 0,
					pageX: 0,
					pageY: 0
				};
				var i = 0,
					n = this.pages.length,
					s = 0;
				if (r.abs(e - this.absStartX) < this.snapThresholdX && r.abs(t - this.absStartY) < this.snapThresholdY) return this.currentPage;
				for (e > 0 ? e = 0 : e < this.maxScrollX && (e = this.maxScrollX), t > 0 ? t = 0 : t < this.maxScrollY && (t = this.maxScrollY); i < n; i++) if (e >= this.pages[i][0].cx) {
					e = this.pages[i][0].x;
					break
				}
				for (n = this.pages[i].length; s < n; s++) if (t >= this.pages[0][s].cy) {
					t = this.pages[0][s].y;
					break
				}
				return i == this.currentPage.pageX && (i += this.directionX, i < 0 ? i = 0 : i >= this.pages.length && (i = this.pages.length - 1), e = this.pages[i][0].x), s == this.currentPage.pageY && (s += this.directionY, s < 0 ? s = 0 : s >= this.pages[0].length && (s = this.pages[0].length - 1), t = this.pages[0][s].y), {
					x: e,
					y: t,
					pageX: i,
					pageY: s
				}
			},
			goToPage: function(e, t, i, n) {
				n = n || this.options.bounceEasing, e >= this.pages.length ? e = this.pages.length - 1 : e < 0 && (e = 0), t >= this.pages[e].length ? t = this.pages[e].length - 1 : t < 0 && (t = 0);
				var s = this.pages[e][t].x,
					a = this.pages[e][t].y;
				i = void 0 === i ? this.options.snapSpeed || r.max(r.max(r.min(r.abs(s - this.x), 1e3), r.min(r.abs(a - this.y), 1e3)), 300) : i, this.currentPage = {
					x: s,
					y: a,
					pageX: e,
					pageY: t
				}, this.scrollTo(s, a, i, n)
			},
			next: function(e, t) {
				var i = this.currentPage.pageX,
					n = this.currentPage.pageY;
				i++, i >= this.pages.length && this.hasVerticalScroll && (i = 0, n++), this.goToPage(i, n, e, t)
			},
			prev: function(e, t) {
				var i = this.currentPage.pageX,
					n = this.currentPage.pageY;
				i--, i < 0 && this.hasVerticalScroll && (i = 0, n--), this.goToPage(i, n, e, t)
			},
			_initKeys: function(e) {
				var t, i = {
					pageUp: 33,
					pageDown: 34,
					end: 35,
					home: 36,
					left: 37,
					up: 38,
					right: 39,
					down: 40
				};
				if ("object" == typeof this.options.keyBindings) for (t in this.options.keyBindings)"string" == typeof this.options.keyBindings[t] && (this.options.keyBindings[t] = this.options.keyBindings[t].toUpperCase().charCodeAt(0));
				else this.options.keyBindings = {};
				for (t in i) this.options.keyBindings[t] = this.options.keyBindings[t] || i[t];
				u.addEvent(s, "keydown", this), this.on("destroy", function() {
					u.removeEvent(s, "keydown", this)
				})
			},
			_key: function(e) {
				if (this.enabled) {
					var t, i = this.options.snap,
						n = i ? this.currentPage.pageX : this.x,
						s = i ? this.currentPage.pageY : this.y,
						a = u.getTime(),
						o = this.keyTime || 0;
					switch (this.options.useTransition && this.isInTransition && (t = this.getComputedPosition(), this._translate(r.round(t.x), r.round(t.y)), this.isInTransition = !1), this.keyAcceleration = a - o < 200 ? r.min(this.keyAcceleration + .25, 50) : 0, e.keyCode) {
					case this.options.keyBindings.pageUp:
						this.hasHorizontalScroll && !this.hasVerticalScroll ? n += i ? 1 : this.wrapperWidth : s += i ? 1 : this.wrapperHeight;
						break;
					case this.options.keyBindings.pageDown:
						this.hasHorizontalScroll && !this.hasVerticalScroll ? n -= i ? 1 : this.wrapperWidth : s -= i ? 1 : this.wrapperHeight;
						break;
					case this.options.keyBindings.end:
						n = i ? this.pages.length - 1 : this.maxScrollX, s = i ? this.pages[0].length - 1 : this.maxScrollY;
						break;
					case this.options.keyBindings.home:
						n = 0, s = 0;
						break;
					case this.options.keyBindings.left:
						n += i ? -1 : 5 + this.keyAcceleration >> 0;
						break;
					case this.options.keyBindings.up:
						s += i ? 1 : 5 + this.keyAcceleration >> 0;
						break;
					case this.options.keyBindings.right:
						n -= i ? -1 : 5 + this.keyAcceleration >> 0;
						break;
					case this.options.keyBindings.down:
						s -= i ? 1 : 5 + this.keyAcceleration >> 0;
						break;
					default:
						return
					}
					if (i) return void this.goToPage(n, s);
					n > 0 ? (n = 0, this.keyAcceleration = 0) : n < this.maxScrollX && (n = this.maxScrollX, this.keyAcceleration = 0), s > 0 ? (s = 0, this.keyAcceleration = 0) : s < this.maxScrollY && (s = this.maxScrollY, this.keyAcceleration = 0), this.scrollTo(n, s, 0), this.keyTime = a
				}
			},
			_animate: function(e, t, i, n) {
				function s() {
					var h, p, f, m = u.getTime();
					if (m >= c) return a.isAnimating = !1, a._translate(e, t), void(a.resetPosition(a.options.bounceTime) || a._execEvent("scrollEnd"));
					m = (m - l) / i, f = n(m), h = (e - r) * f + r, p = (t - o) * f + o, a._translate(h, p), a.isAnimating && d(s)
				}
				var a = this,
					r = this.x,
					o = this.y,
					l = u.getTime(),
					c = l + i;
				this.isAnimating = !0, s()
			},
			handleEvent: function(e) {
				switch (e.type) {
				case "touchstart":
				case "pointerdown":
				case "MSPointerDown":
				case "mousedown":
					this._start(e);
					break;
				case "touchmove":
				case "pointermove":
				case "MSPointerMove":
				case "mousemove":
					this._move(e);
					break;
				case "touchend":
				case "pointerup":
				case "MSPointerUp":
				case "mouseup":
				case "touchcancel":
				case "pointercancel":
				case "MSPointerCancel":
				case "mousecancel":
					this._end(e);
					break;
				case "orientationchange":
				case "resize":
					this._resize();
					break;
				case "transitionend":
				case "webkitTransitionEnd":
				case "oTransitionEnd":
				case "MSTransitionEnd":
					this._transitionEnd(e);
					break;
				case "wheel":
				case "DOMMouseScroll":
				case "mousewheel":
					this._wheel(e);
					break;
				case "keydown":
					this._key(e);
					break;
				case "click":
					this.enabled && !e._constructed && (e.preventDefault(), e.stopPropagation())
				}
			}
		}, c.prototype = {
			handleEvent: function(e) {
				switch (e.type) {
				case "touchstart":
				case "pointerdown":
				case "MSPointerDown":
				case "mousedown":
					this._start(e);
					break;
				case "touchmove":
				case "pointermove":
				case "MSPointerMove":
				case "mousemove":
					this._move(e);
					break;
				case "touchend":
				case "pointerup":
				case "MSPointerUp":
				case "mouseup":
				case "touchcancel":
				case "pointercancel":
				case "MSPointerCancel":
				case "mousecancel":
					this._end(e)
				}
			},
			destroy: function() {
				this.options.fadeScrollbars && (clearTimeout(this.fadeTimeout), this.fadeTimeout = null), this.options.interactive && (u.removeEvent(this.indicator, "touchstart", this), u.removeEvent(this.indicator, u.prefixPointerEvent("pointerdown"), this), u.removeEvent(this.indicator, "mousedown", this), u.removeEvent(s, "touchmove", this), u.removeEvent(s, u.prefixPointerEvent("pointermove"), this), u.removeEvent(s, "mousemove", this), u.removeEvent(s, "touchend", this), u.removeEvent(s, u.prefixPointerEvent("pointerup"), this), u.removeEvent(s, "mouseup", this)), this.options.defaultScrollbars && this.wrapper.parentNode.removeChild(this.wrapper)
			},
			_start: function(e) {
				var t = e.touches ? e.touches[0] : e;
				e.preventDefault(), e.stopPropagation(), this.transitionTime(), this.initiated = !0, this.moved = !1, this.lastPointX = t.pageX, this.lastPointY = t.pageY, this.startTime = u.getTime(), this.options.disableTouch || u.addEvent(s, "touchmove", this), this.options.disablePointer || u.addEvent(s, u.prefixPointerEvent("pointermove"), this), this.options.disableMouse || u.addEvent(s, "mousemove", this), this.scroller._execEvent("beforeScrollStart")
			},
			_move: function(e) {
				var t, i, n, s, a = e.touches ? e.touches[0] : e;
				u.getTime();
				this.moved || this.scroller._execEvent("scrollStart"), this.moved = !0, t = a.pageX - this.lastPointX, this.lastPointX = a.pageX, i = a.pageY - this.lastPointY, this.lastPointY = a.pageY, n = this.x + t, s = this.y + i, this._pos(n, s), e.preventDefault(), e.stopPropagation()
			},
			_end: function(e) {
				if (this.initiated) {
					if (this.initiated = !1, e.preventDefault(), e.stopPropagation(), u.removeEvent(s, "touchmove", this), u.removeEvent(s, u.prefixPointerEvent("pointermove"), this), u.removeEvent(s, "mousemove", this), this.scroller.options.snap) {
						var t = this.scroller._nearestSnap(this.scroller.x, this.scroller.y),
							i = this.options.snapSpeed || r.max(r.max(r.min(r.abs(this.scroller.x - t.x), 1e3), r.min(r.abs(this.scroller.y - t.y), 1e3)), 300);
						this.scroller.x == t.x && this.scroller.y == t.y || (this.scroller.directionX = 0, this.scroller.directionY = 0, this.scroller.currentPage = t, this.scroller.scrollTo(t.x, t.y, i, this.scroller.options.bounceEasing))
					}
					this.moved && this.scroller._execEvent("scrollEnd")
				}
			},
			transitionTime: function(e) {
				e = e || 0;
				var t = u.style.transitionDuration;
				if (this.indicatorStyle[t] = e + "ms", !e && u.isBadAndroid) {
					this.indicatorStyle[t] = "0.0001ms";
					var i = this;
					d(function() {
						"0.0001ms" === i.indicatorStyle[t] && (i.indicatorStyle[t] = "0s")
					})
				}
			},
			transitionTimingFunction: function(e) {
				this.indicatorStyle[u.style.transitionTimingFunction] = e
			},
			refresh: function() {
				this.transitionTime(), this.options.listenX && !this.options.listenY ? this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? "block" : "none" : this.options.listenY && !this.options.listenX ? this.indicatorStyle.display = this.scroller.hasVerticalScroll ? "block" : "none" : this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? "block" : "none", this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ? (u.addClass(this.wrapper, "iScrollBothScrollbars"), u.removeClass(this.wrapper, "iScrollLoneScrollbar"), this.options.defaultScrollbars && this.options.customStyle && (this.options.listenX ? this.wrapper.style.right = "8px" : this.wrapper.style.bottom = "8px")) : (u.removeClass(this.wrapper, "iScrollBothScrollbars"), u.addClass(this.wrapper, "iScrollLoneScrollbar"), this.options.defaultScrollbars && this.options.customStyle && (this.options.listenX ? this.wrapper.style.right = "2px" : this.wrapper.style.bottom = "2px"));
				this.wrapper.offsetHeight;
				this.options.listenX && (this.wrapperWidth = this.wrapper.clientWidth, this.options.resize ? (this.indicatorWidth = r.max(r.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8), this.indicatorStyle.width = this.indicatorWidth + "px") : this.indicatorWidth = this.indicator.clientWidth, this.maxPosX = this.wrapperWidth - this.indicatorWidth, "clip" == this.options.shrink ? (this.minBoundaryX = 8 - this.indicatorWidth, this.maxBoundaryX = this.wrapperWidth - 8) : (this.minBoundaryX = 0, this.maxBoundaryX = this.maxPosX), this.sizeRatioX = this.options.speedRatioX || this.scroller.maxScrollX && this.maxPosX / this.scroller.maxScrollX), this.options.listenY && (this.wrapperHeight = this.wrapper.clientHeight, this.options.resize ? (this.indicatorHeight = r.max(r.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8), this.indicatorStyle.height = this.indicatorHeight + "px") : this.indicatorHeight = this.indicator.clientHeight, this.maxPosY = this.wrapperHeight - this.indicatorHeight, "clip" == this.options.shrink ? (this.minBoundaryY = 8 - this.indicatorHeight, this.maxBoundaryY = this.wrapperHeight - 8) : (this.minBoundaryY = 0, this.maxBoundaryY = this.maxPosY), this.maxPosY = this.wrapperHeight - this.indicatorHeight, this.sizeRatioY = this.options.speedRatioY || this.scroller.maxScrollY && this.maxPosY / this.scroller.maxScrollY), this.updatePosition()
			},
			updatePosition: function() {
				var e = this.options.listenX && r.round(this.sizeRatioX * this.scroller.x) || 0,
					t = this.options.listenY && r.round(this.sizeRatioY * this.scroller.y) || 0;
				this.options.ignoreBoundaries || (e < this.minBoundaryX ? ("scale" == this.options.shrink && (this.width = r.max(this.indicatorWidth + e, 8), this.indicatorStyle.width = this.width + "px"), e = this.minBoundaryX) : e > this.maxBoundaryX ? "scale" == this.options.shrink ? (this.width = r.max(this.indicatorWidth - (e - this.maxPosX), 8), this.indicatorStyle.width = this.width + "px", e = this.maxPosX + this.indicatorWidth - this.width) : e = this.maxBoundaryX : "scale" == this.options.shrink && this.width != this.indicatorWidth && (this.width = this.indicatorWidth, this.indicatorStyle.width = this.width + "px"), t < this.minBoundaryY ? ("scale" == this.options.shrink && (this.height = r.max(this.indicatorHeight + 3 * t, 8), this.indicatorStyle.height = this.height + "px"), t = this.minBoundaryY) : t > this.maxBoundaryY ? "scale" == this.options.shrink ? (this.height = r.max(this.indicatorHeight - 3 * (t - this.maxPosY), 8), this.indicatorStyle.height = this.height + "px", t = this.maxPosY + this.indicatorHeight - this.height) : t = this.maxBoundaryY : "scale" == this.options.shrink && this.height != this.indicatorHeight && (this.height = this.indicatorHeight, this.indicatorStyle.height = this.height + "px")), this.x = e, this.y = t, this.scroller.options.useTransform ? this.indicatorStyle[u.style.transform] = "translate(" + e + "px," + t + "px)" + this.scroller.translateZ : (this.indicatorStyle.left = e + "px", this.indicatorStyle.top = t + "px")
			},
			_pos: function(e, t) {
				e < 0 ? e = 0 : e > this.maxPosX && (e = this.maxPosX), t < 0 ? t = 0 : t > this.maxPosY && (t = this.maxPosY), e = this.options.listenX ? r.round(e / this.sizeRatioX) : this.scroller.x, t = this.options.listenY ? r.round(t / this.sizeRatioY) : this.scroller.y, this.scroller.scrollTo(e, t)
			},
			fade: function(e, t) {
				if (!t || this.visible) {
					clearTimeout(this.fadeTimeout), this.fadeTimeout = null;
					var i = e ? 250 : 500,
						n = e ? 0 : 300;
					e = e ? "1" : "0", this.wrapperStyle[u.style.transitionDuration] = i + "ms", this.fadeTimeout = setTimeout(function(e) {
						this.wrapperStyle.opacity = e, this.visible = +e
					}.bind(this, e), n)
				}
			}
		}, o.utils = u, void 0 !== e && e.exports ? e.exports = o : void 0 !== (n = function() {
			return o
		}.call(t, i, t, e)) && (e.exports = n)
	}(window, document, Math)
}, , function(e, t, i) {
	"use strict";
	var n, s, a, r = i(31);
	!
	function(e) {
		e && e.__esModule
	}(r);
	!
	function(r) {
		s = [i(1)], n = r, void 0 !== (a = "function" == typeof n ? n.apply(t, s) : n) && (e.exports = a)
	}(function(e) {
		function t(i, n) {
			var s = this;
			s.element = i, s.el = e(i), s.suggestions = [], s.badQueries = [], s.selectedIndex = -1, s.currentValue = s.element.value, s.timeoutId = null, s.cachedResponse = {}, s.onChangeTimeout = null, s.onChange = null, s.isLocal = !1, s.suggestionsContainer = null, s.noSuggestionsContainer = null, s.options = e.extend({}, t.defaults, n), s.classes = {
				selected: "autocomplete-selected",
				suggestion: "autocomplete-suggestion"
			}, s.hint = null, s.hintValue = "", s.selection = null, s.initialize(), s.setOptions(n)
		}
		function i(e, t, i) {
			return -1 !== e.value.toLowerCase().indexOf(i)
		}
		function n(t) {
			return "string" == typeof t ? e.parseJSON(t) : t
		}
		function s(e, t) {
			if (!t) return e.value;
			var i = "(" + r.escapeRegExChars(t) + ")";
			return e.value.replace(new RegExp(i, "gi"), "<strong>$1</strong>").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/&lt;(\/?strong)&gt;/g, "<$1>")
		}
		function a(e, t) {
			return '<div class="autocomplete-group">' + t + "</div>"
		}
		var r = function() {
				return {
					escapeRegExChars: function(e) {
						return e.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&")
					},
					createNode: function(e) {
						var t = document.createElement("div");
						return t.className = e, t.style.position = "absolute", t.style.display = "none", t
					}
				}
			}(),
			o = {
				ESC: 27,
				TAB: 9,
				RETURN: 13,
				LEFT: 37,
				UP: 38,
				RIGHT: 39,
				DOWN: 40
			},
			l = e.noop;
		t.utils = r, e.Autocomplete = t, t.defaults = {
			ajaxSettings: {},
			autoSelectFirst: !1,
			appendTo: "body",
			serviceUrl: null,
			lookup: null,
			onSelect: null,
			width: "auto",
			minChars: 1,
			maxHeight: 300,
			deferRequestBy: 0,
			params: {},
			formatResult: s,
			formatGroup: a,
			delimiter: null,
			zIndex: 9999,
			type: "GET",
			noCache: !1,
			onSearchStart: l,
			onSearchComplete: l,
			onSearchError: l,
			preserveInput: !1,
			containerClass: "autocomplete-suggestions",
			tabDisabled: !1,
			dataType: "text",
			currentRequest: null,
			triggerSelectOnValidInput: !0,
			preventBadQueries: !0,
			lookupFilter: i,
			paramName: "query",
			transformResult: n,
			showNoSuggestionNotice: !1,
			noSuggestionNotice: "No results",
			orientation: "bottom",
			forceFixPosition: !1
		}, t.prototype = {
			initialize: function() {
				var i, n = this,
					s = "." + n.classes.suggestion,
					a = n.classes.selected,
					r = n.options;
				n.element.setAttribute("autocomplete", "off"), n.noSuggestionsContainer = e('<div class="autocomplete-no-suggestion"></div>').html(this.options.noSuggestionNotice).get(0), n.suggestionsContainer = t.utils.createNode(r.containerClass), i = e(n.suggestionsContainer), i.appendTo(r.appendTo || "body"), "auto" !== r.width && i.css("width", r.width), i.on("mouseover.autocomplete", s, function() {
					n.activate(e(this).data("index"))
				}), i.on("mouseout.autocomplete", function() {
					n.selectedIndex = -1, i.children("." + a).removeClass(a)
				}), i.on("click.autocomplete", s, function() {
					n.select(e(this).data("index"))
				}), i.on("click.autocomplete", function() {
					clearTimeout(n.blurTimeoutId)
				}), n.fixPositionCapture = function() {
					n.visible && n.fixPosition()
				}, e(window).on("resize.autocomplete", n.fixPositionCapture), n.el.on("keydown.autocomplete", function(e) {
					n.onKeyPress(e)
				}), n.el.on("keyup.autocomplete", function(e) {
					n.onKeyUp(e)
				}), n.el.on("blur.autocomplete", function() {
					n.onBlur()
				}), n.el.on("focus.autocomplete", function() {
					n.onFocus()
				}), n.el.on("change.autocomplete", function(e) {
					n.onKeyUp(e)
				}), n.el.on("input.autocomplete", function(e) {
					n.onKeyUp(e)
				})
			},
			onFocus: function() {
				var e = this;
				e.fixPosition(), e.el.val().length >= e.options.minChars && e.onValueChange()
			},
			onBlur: function() {
				var e = this;
				e.blurTimeoutId = setTimeout(function() {
					e.hide()
				}, 10)
			},
			abortAjax: function() {
				var e = this;
				e.currentRequest && (e.currentRequest.abort(), e.currentRequest = null)
			},
			setOptions: function(t) {
				var i = this,
					n = e.extend({}, i.options, t);
				i.isLocal = Array.isArray(n.lookup), i.isLocal && (n.lookup = i.verifySuggestionsFormat(n.lookup)), n.orientation = i.validateOrientation(n.orientation, "bottom"), e(i.suggestionsContainer).css({
					"max-height": n.maxHeight + "px",
					width: n.width + "px",
					"z-index": n.zIndex
				}), this.options = n
			},
			clearCache: function() {
				this.cachedResponse = {}, this.badQueries = []
			},
			clear: function() {
				this.clearCache(), this.currentValue = "", this.suggestions = []
			},
			disable: function() {
				var e = this;
				e.disabled = !0, clearTimeout(e.onChangeTimeout), e.abortAjax()
			},
			enable: function() {
				this.disabled = !1
			},
			fixPosition: function() {
				var t = this,
					i = e(t.suggestionsContainer),
					n = i.parent().get(0);
				if (n === document.body || t.options.forceFixPosition) {
					var s = t.options.orientation,
						a = i.outerHeight(),
						r = t.el.outerHeight(),
						o = t.el.offset(),
						l = {
							top: o.top,
							left: o.left
						};
					if ("auto" === s) {
						var c = e(window).height(),
							d = e(window).scrollTop(),
							u = -d + o.top - a,
							h = d + c - (o.top + r + a);
						s = Math.max(u, h) === u ? "top" : "bottom"
					}
					if (l.top += "top" === s ? -a : r, n !== document.body) {
						var p, f = i.css("opacity");
						t.visible || i.css("opacity", 0).show(), p = i.offsetParent().offset(), l.top -= p.top, l.top += n.scrollTop, l.left -= p.left, t.visible || i.css("opacity", f).hide()
					}
					"auto" === t.options.width && (l.width = t.el.outerWidth() + "px"), i.css(l)
				}
			},
			isCursorAtEnd: function() {
				var e, t = this,
					i = t.el.val().length,
					n = t.element.selectionStart;
				return "number" == typeof n ? n === i : !document.selection || (e = document.selection.createRange(), e.moveStart("character", -i), i === e.text.length)
			},
			onKeyPress: function(e) {
				var t = this;
				if (!t.disabled && !t.visible && e.which === o.DOWN && t.currentValue) return void t.suggest();
				if (!t.disabled && t.visible) {
					switch (e.which) {
					case o.ESC:
						t.el.val(t.currentValue), t.hide();
						break;
					case o.RIGHT:
						if (t.hint && t.options.onHint && t.isCursorAtEnd()) {
							t.selectHint();
							break
						}
						return;
					case o.TAB:
						if (t.hint && t.options.onHint) return void t.selectHint();
						if (-1 === t.selectedIndex) return void t.hide();
						if (t.select(t.selectedIndex), !1 === t.options.tabDisabled) return;
						break;
					case o.RETURN:
						if (-1 === t.selectedIndex) return void t.hide();
						t.select(t.selectedIndex);
						break;
					case o.UP:
						t.moveUp();
						break;
					case o.DOWN:
						t.moveDown();
						break;
					default:
						return
					}
					e.stopImmediatePropagation(), e.preventDefault()
				}
			},
			onKeyUp: function(e) {
				var t = this;
				if (!t.disabled) {
					switch (e.which) {
					case o.UP:
					case o.DOWN:
						return
					}
					clearTimeout(t.onChangeTimeout), t.currentValue !== t.el.val() && (t.findBestHint(), t.options.deferRequestBy > 0 ? t.onChangeTimeout = setTimeout(function() {
						t.onValueChange()
					}, t.options.deferRequestBy) : t.onValueChange())
				}
			},
			onValueChange: function() {
				if (this.ignoreValueChange) return void(this.ignoreValueChange = !1);
				var t = this,
					i = t.options,
					n = t.el.val(),
					s = t.getQuery(n);
				if (t.selection && t.currentValue !== s && (t.selection = null, (i.onInvalidateSelection || e.noop).call(t.element)), clearTimeout(t.onChangeTimeout), t.currentValue = n, t.selectedIndex = -1, i.triggerSelectOnValidInput && t.isExactMatch(s)) return void t.select(0);
				s.length < i.minChars ? t.hide() : t.getSuggestions(s)
			},
			isExactMatch: function(e) {
				var t = this.suggestions;
				return 1 === t.length && t[0].value.toLowerCase() === e.toLowerCase()
			},
			getQuery: function(t) {
				var i, n = this.options.delimiter;
				return n ? (i = t.split(n), e.trim(i[i.length - 1])) : t
			},
			getSuggestionsLocal: function(t) {
				var i, n = this,
					s = n.options,
					a = t.toLowerCase(),
					r = s.lookupFilter,
					o = parseInt(s.lookupLimit, 10);
				return i = {
					suggestions: e.grep(s.lookup, function(e) {
						return r(e, t, a)
					})
				}, o && i.suggestions.length > o && (i.suggestions = i.suggestions.slice(0, o)), i
			},
			getSuggestions: function(t) {
				var i, n, s, a, r = this,
					o = r.options,
					l = o.serviceUrl;
				if (o.params[o.paramName] = t, !1 !== o.onSearchStart.call(r.element, o.params)) {
					if (n = o.ignoreParams ? null : o.params, e.isFunction(o.lookup)) return void o.lookup(t, function(e) {
						r.suggestions = e.suggestions, r.suggest(), o.onSearchComplete.call(r.element, t, e.suggestions)
					});
					r.isLocal ? i = r.getSuggestionsLocal(t) : (e.isFunction(l) && (l = l.call(r.element, t)), s = l + "?" + e.param(n || {}), i = r.cachedResponse[s]), i && Array.isArray(i.suggestions) ? (r.suggestions = i.suggestions, r.suggest(), o.onSearchComplete.call(r.element, t, i.suggestions)) : r.isBadQuery(t) ? o.onSearchComplete.call(r.element, t, []) : (r.abortAjax(), a = {
						url: l,
						data: n,
						type: o.type,
						dataType: o.dataType
					}, e.extend(a, o.ajaxSettings), r.currentRequest = e.ajax(a).done(function(e) {
						var i;
						r.currentRequest = null, i = o.transformResult(e, t), r.processResponse(i, t, s), o.onSearchComplete.call(r.element, t, i.suggestions)
					}).fail(function(e, i, n) {
						o.onSearchError.call(r.element, t, e, i, n)
					}))
				}
			},
			isBadQuery: function(e) {
				if (!this.options.preventBadQueries) return !1;
				for (var t = this.badQueries, i = t.length; i--;) if (0 === e.indexOf(t[i])) return !0;
				return !1
			},
			hide: function() {
				var t = this,
					i = e(t.suggestionsContainer);
				e.isFunction(t.options.onHide) && t.visible && t.options.onHide.call(t.element, i), t.visible = !1, t.selectedIndex = -1, clearTimeout(t.onChangeTimeout), (t.el.val().length < t.options.minChars || 0 === t.suggestions.length) && e(t.suggestionsContainer).hide(), t.signalHint(null)
			},
			suggest: function() {
				if (!this.suggestions.length) return void(this.options.showNoSuggestionNotice ? this.noSuggestions() : this.hide());
				var t, i = this,
					n = i.options,
					s = n.groupBy,
					a = n.formatResult,
					r = i.getQuery(i.currentValue),
					o = i.classes.suggestion,
					l = i.classes.selected,
					c = e(i.suggestionsContainer),
					d = e(i.noSuggestionsContainer),
					u = n.beforeRender,
					h = "",
					p = function(e, i) {
						var a = e.data[s];
						return t === a ? "" : (t = a, n.formatGroup(e, t))
					};
				if (n.triggerSelectOnValidInput && i.isExactMatch(r)) return void i.select(0);
				e.each(i.suggestions, function(e, t) {
					s && (h += p(t, 0)), h += '<div class="' + o + '" data-index="' + e + '">' + a(t, r, e) + "</div>"
				}), this.adjustContainerWidth(), d.detach(), c.html(h), e.isFunction(u) && u.call(i.element, c, i.suggestions), i.fixPosition(), c.show(), n.autoSelectFirst && (i.selectedIndex = 0, c.scrollTop(0), c.children("." + o).first().addClass(l)), i.visible = !0, i.findBestHint()
			},
			noSuggestions: function() {
				var t = this,
					i = t.options.beforeRender,
					n = e(t.suggestionsContainer),
					s = e(t.noSuggestionsContainer);
				this.adjustContainerWidth(), s.detach(), n.empty(), n.append(s), e.isFunction(i) && i.call(t.element, n, t.suggestions), t.fixPosition(), n.show(), t.visible = !0
			},
			adjustContainerWidth: function() {
				var t, i = this,
					n = i.options,
					s = e(i.suggestionsContainer);
				"auto" === n.width ? (t = i.el.outerWidth(), s.css("width", t > 0 ? t : 300)) : "flex" === n.width && s.css("width", "")
			},
			findBestHint: function() {
				var t = this,
					i = t.el.val().toLowerCase(),
					n = null;
				i && (e.each(t.suggestions, function(e, t) {
					var s = 0 === t.value.toLowerCase().indexOf(i);
					return s && (n = t), !s
				}), t.signalHint(n))
			},
			signalHint: function(t) {
				var i = "",
					n = this;
				t && (i = n.currentValue + t.value.substr(n.currentValue.length)), n.hintValue !== i && (n.hintValue = i, n.hint = t, (this.options.onHint || e.noop)(i))
			},
			verifySuggestionsFormat: function(t) {
				return t.length && "string" == typeof t[0] ? e.map(t, function(e) {
					return {
						value: e,
						data: null
					}
				}) : t
			},
			validateOrientation: function(t, i) {
				return t = e.trim(t || "").toLowerCase(), -1 === e.inArray(t, ["auto", "bottom", "top"]) && (t = i), t
			},
			processResponse: function(e, t, i) {
				var n = this,
					s = n.options;
				e.suggestions = n.verifySuggestionsFormat(e.suggestions), s.noCache || (n.cachedResponse[i] = e, s.preventBadQueries && !e.suggestions.length && n.badQueries.push(t)), t === n.getQuery(n.currentValue) && (n.suggestions = e.suggestions, n.suggest())
			},
			activate: function(t) {
				var i, n = this,
					s = n.classes.selected,
					a = e(n.suggestionsContainer),
					r = a.find("." + n.classes.suggestion);
				return a.find("." + s).removeClass(s), n.selectedIndex = t, -1 !== n.selectedIndex && r.length > n.selectedIndex ? (i = r.get(n.selectedIndex), e(i).addClass(s), i) : null
			},
			selectHint: function() {
				var t = this,
					i = e.inArray(t.hint, t.suggestions);
				t.select(i)
			},
			select: function(e) {
				var t = this;
				t.hide(), t.onSelect(e)
			},
			moveUp: function() {
				var t = this;
				if (-1 !== t.selectedIndex) return 0 === t.selectedIndex ? (e(t.suggestionsContainer).children("." + t.classes.suggestion).first().removeClass(t.classes.selected), t.selectedIndex = -1, t.ignoreValueChange = !1, t.el.val(t.currentValue), void t.findBestHint()) : void t.adjustScroll(t.selectedIndex - 1)
			},
			moveDown: function() {
				var e = this;
				e.selectedIndex !== e.suggestions.length - 1 && e.adjustScroll(e.selectedIndex + 1)
			},
			adjustScroll: function(t) {
				var i = this,
					n = i.activate(t);
				if (n) {
					var s, a, r, o = e(n).outerHeight();
					s = n.offsetTop, a = e(i.suggestionsContainer).scrollTop(), r = a + i.options.maxHeight - o, s < a ? e(i.suggestionsContainer).scrollTop(s) : s > r && e(i.suggestionsContainer).scrollTop(s - i.options.maxHeight + o), i.options.preserveInput || (i.ignoreValueChange = !0, i.el.val(i.getValue(i.suggestions[t].value))), i.signalHint(null)
				}
			},
			onSelect: function(t) {
				var i = this,
					n = i.options.onSelect,
					s = i.suggestions[t];
				i.currentValue = i.getValue(s.value), i.currentValue === i.el.val() || i.options.preserveInput || i.el.val(i.currentValue), i.signalHint(null), i.suggestions = [], i.selection = s, e.isFunction(n) && n.call(i.element, s)
			},
			getValue: function(e) {
				var t, i, n = this,
					s = n.options.delimiter;
				return s ? (t = n.currentValue, i = t.split(s), 1 === i.length ? e : t.substr(0, t.length - i[i.length - 1].length) + e) : e
			},
			dispose: function() {
				var t = this;
				t.el.off(".autocomplete").removeData("autocomplete"), e(window).off("resize.autocomplete", t.fixPositionCapture), e(t.suggestionsContainer).remove()
			}
		}, e.fn.devbridgeAutocomplete = function(i, n) {
			return arguments.length ? this.each(function() {
				var s = e(this),
					a = s.data("autocomplete");
				"string" == typeof i ? a && "function" == typeof a[i] && a[i](n) : (a && a.dispose && a.dispose(), a = new t(this, i), s.data("autocomplete", a))
			}) : this.first().data("autocomplete")
		}, e.fn.autocomplete || (e.fn.autocomplete = e.fn.devbridgeAutocomplete)
	})
}, function(e, t) {}, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t, i) {
	"use strict";
	(function(e) {
		function t() {
			d || (d = !d, e.ajax({
				type: "GET",
				url: l,
				data: {
					timesort: c
				},
				dataType: "json",
				success: function(t) {
					var i = t.data;
					u += 1, 0 === i.length && (u = 3);
					var n = "";
					e.each(i, function(e, s) {
						switch (s.last_item = e === i.length - 1 ? t.timesort : "", s.district) {
						case "1":
							s.tag = "guonei", s.tag_name = "国内精选";
							break;
						case "2":
							s.tag = "haitao", s.tag_name = "海淘精选";
							break;
						case "3":
							s.tag = "kuajing", s.tag_name = "跨境精选"
						}
						n += r.render(o, s)
					}), e("#J_scroll_ul").append(n), d = !d
				}
			}))
		}
		var n, s, a, r = i(55),
			o = e("#J_card_template").html(),
			l = "//faxian.m.ztm.me/ajax_faxian_list_show",
			c = e(".card-group-list").last().attr("timesort"),
			d = !1,
			u = 1;
		r.escape = function(e) {
			return e
		}, r.parse(o), e(window).scroll(function() {
			if (n = e(this).scrollTop(), s = e(document).height(), a = e(this).height(), 3 === u) return e("#J_loading").hide(), e(".pagination").show(), !1;
			n + a + 100 >= s && (c = e(".card-group-list").last().attr("timesort"), t())
		})
	}).call(t, i(1))
}, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t) {}, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , function(e, t, i) {
	"use strict";
	i(33), i(103), i(50), i(45), i(56), i(48), i(51), i(227), i(59), i(52), i(32), i(47), i(173), i(49), i(54), i(58)
}], [275]);